Angular의 서식 있는 텍스트 편집기
Angular에서 서식 있는 텍스트 편집기를 만드는 방법과 만들 수 있는 라이브러리를 소개합니다.
Angular-Editor
라이브러리를 사용하여 Angular에서 서식 있는 텍스트 편집기 만들기
사용자가 콘텐츠를 편집할 수 있도록 하는 기능이 필요한 콘텐츠 관리 시스템 또는 웹 소프트웨어를 만들 때 일반 텍스트를 사용하거나 서식 있는 텍스트 편집기를 만드는 두 가지 옵션이 있습니다. 서식 있는 텍스트 편집기는 제공되는 많은 옵션을 사용하여 텍스트 서식을 지정하는 데 사용됩니다.
HTML 콘텐츠로 변환될 이미지, 링크, 오디오 및 비디오를 추가할 수 있습니다.
Angular에는 Angular-Editor
, Angular Trix
, Angular Meditor
, ngQuill
및 Angular 인라인 텍스트 편집기와 같은 풍부한 텍스트 편집기를 웹 애플리케이션에 통합하는 데 도움이 되는 많은 라이브러리가 있습니다.
.
리치 텍스트 편집기를 만드는 데 사용할 라이브러리는 @kolkov/angular-editor
입니다. npm
패키지 관리자를 사용하여 @kolkov/angular-editor
를 설치할 수 있습니다.
# CLI
npm install @kolkov/angular-editor --save
설치 후 @angular/common/http
에서 HttpClientModule
을 가져오고 app.module.ts
의 @kolkov/angular-editor
에서 AngularEditorModule
을 가져와야 합니다.
app.module.ts
는 아래와 같이 보일 것입니다.
# angular
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpClientModule} from '@angular/common/http';
import { AppComponent } from './app.component';
import { HelloComponent } from './hello.component';
import { AngularEditorModule } from '@kolkov/angular-editor';
@NgModule({
imports: [ BrowserModule, FormsModule, AngularEditorModule, HttpClientModule ],
declarations: [ AppComponent, HelloComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
이제 AngularEditorConfig
를 사용하여 서식 있는 텍스트 편집기를 구성할 수 있습니다. 다음 구성을 만들 수 있습니다.
구성 | 유형 | 기본 | 설명 |
---|---|---|---|
editable |
Boolean |
true |
편집기 활성화 또는 비활성화 |
spellcheck |
Boolean |
true |
맞춤법 검사 활성화 또는 비활성화 |
translate |
string |
yes |
번역 활성화 또는 비활성화 |
sanitize |
Boolean |
true |
DOM 삭제 활성화 또는 비활성화 |
height |
string |
auto |
그것을 사용하여 편집기의 높이를 설정할 수 있습니다 |
minHeight |
string |
0 |
그것을 사용하여 편집기의 최소 높이를 설정할 수 있습니다. |
maxHeight |
string |
auto |
그것을 사용하여 편집기의 최대 높이를 설정할 수 있습니다. |
width |
string |
auto |
그것을 사용하여 편집기의 너비를 설정할 수 있습니다. |
minWidth |
string |
0 |
그것을 사용하여 편집기의 최소 너비를 설정할 수 있습니다. |
enableToolbar |
Boolean |
true |
도구 모음 활성화 또는 비활성화 |
showToolbar |
Boolean |
true |
도구 모음 표시 또는 숨기기 |
toolbarPosition |
string |
top |
도구 모음의 위치를 위쪽 또는 아래쪽으로 설정할 수 있습니다. |
placeholder |
string |
- | 편집기에 대한 자리 표시자를 설정할 수 있습니다. |
defaultParagraphSeparator |
string |
- | p 태그와 같은 기본 단락 구분 기호를 정의할 수 있습니다. |
defaultFontName |
string |
- | Arial 과 같은 기본 글꼴을 설정할 수 있습니다. |
defaultFontSize |
string |
- | 기본 글꼴 크기를 설정할 수 있습니다. |
uploadUrl |
string |
- | 이미지 업로드 끝점을 설정하고 imageUrl 키로 응답을 반환할 수 있습니다. {"imageUrl" : } |
upload |
function |
- | 우리는 그것을 사용하여 이미지 업로드 기능을 할 수 있습니다. |
uploadWithCredentials |
Boolean |
false |
이미지 업로드 비밀번호를 보호할지 여부를 설정할 수 있습니다. |
fonts |
Font[] |
- | [{name, class}] 등과 같이 사용할 수 있는 글꼴 배열을 설정할 수 있습니다. |
customClasses |
CustomClass[] |
- | 편집기에서 사용할 수 있는 사용 가능한 클래스 배열을 설정할 수 있습니다. |
outline |
Boolean |
true |
에디터의 아웃라인에 포커스를 맞출 수 있습니다. |
toolbarHiddenButtons |
string[][] |
- | 숨겨질 버튼 이름이나 요소의 배열을 설정할 수 있습니다. |
위의 구성을 사용하여 서식 있는 텍스트 편집기를 구성합니다.
# angular
import { Component } from '@angular/core';
import { AngularEditorConfig } from '@kolkov/angular-editor';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
name = 'Angular 6';
htmlContent = '';
config: AngularEditorConfig = {
editable: true,
spellcheck: true,
height: '10rem',
minHeight: '5rem',
placeholder: 'Enter text in this rich text editor....',
defaultParagraphSeparator: 'p',
defaultFontName: 'Arial',
customClasses: [
{
name: 'Quote',
class: 'quoteClass',
},
{
name: 'Title Heading',
class: 'titleHead',
tag: 'h1',
},
],
};
}
angular-editor
태그를 사용하여 서식 있는 텍스트 편집기와 서식 있는 텍스트 편집기의 출력을 표시하는 템플릿을 만듭니다. app.component.ts
에서 정의한 htmlContent
변수를 사용합니다.
app.component.html
의 코드는 다음과 같습니다.
# angular
<h1>AngularEditor</h1>
<angular-editor [(ngModel)]="htmlContent" [config]="config"></angular-editor>
<h1>HTML Output</h1>
<div class="html">
{{ htmlContent }}
</div>
출력:
이 쉬운 방법으로 서식 있는 텍스트 편집기를 만들 수 있습니다.
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn