Angular 앱에 리치 텍스트 편집기를 추가하는 방법
CKEditor 5는 바로 사용할 수 있는 편집기 빌드와 빌드의 기반이 되는 CKEditor 5 프레임워크로 구성됩니다.
현재 Angular용 CKEditor 5 구성 요소는 빌드를 통해서만 CKEditor 5 통합을 지원합니다. 소스에서 빌드된 CKEditor 5 통합은 아직 angular-cli에서 webpack 구성을 조정하는 기능이 없기 때문에 불가능합니다.
While there is no support to integrate CKEditor 5 from source yet, you can still create a custom build of CKEditor 5 and include it in your Angular application.
빠른 시작
기존 Angular 프로젝트에서 CKEditor npm 패키지를 설치합니다.
npm install --save @ckeditor/ckeditor5-angular
@ckeditor/ckeditor5-build-classic을 선택했다고 가정합니다.
npm install --save @ckeditor/ckeditor5-build-classic
이제 구성 요소가 템플릿에서 구성 요소를 사용할 모듈에 CKEditorModule을 추가합니다.
import { CKEditorModule } from '@ckeditor/ckeditor5-angular';
@NgModule( {
imports: [
CKEditorModule,
// ...
],
// ...
} )
Angular 구성 요소에서 편집기 빌드를 가져오고 공용 속성에 할당하여 템플릿에서 액세스할 수 있도록 합니다.
import * as ClassicEditor from '@ckeditor/ckeditor5-build-classic';
@Component( {
// ...
} )
export class MyComponent {
public Editor = ClassicEditor;
// ...
}
마지막으로 HTML 템플릿의 태그를 사용하여 서식 있는 텍스트 편집기를 실행합니다.
<ckeditor [editor]="Editor" data="<p>Hello, world!</p>"></ckeditor>
ngModel과 통합
npm install --save @ckeditor/ckeditor5-angular
npm install --save @ckeditor/ckeditor5-build-classic
import { CKEditorModule } from '@ckeditor/ckeditor5-angular';
@NgModule( {
imports: [
CKEditorModule,
// ...
],
// ...
} )
import * as ClassicEditor from '@ckeditor/ckeditor5-build-classic';
@Component( {
// ...
} )
export class MyComponent {
public Editor = ClassicEditor;
// ...
}
<ckeditor [editor]="Editor" data="<p>Hello, world!</p>"></ckeditor>
@Component( {
// ...
} )
export class MyComponent {
public model = {
editorData: '<p>Hello, world!</p>'
};
// ...
}
<ckeditor [(ngModel)]="model.editorData" [editor]="Editor"></ckeditor>
지원되는 @Input 속성
Editor ( required )
:편집기의 인스턴스를 생성하기 위해 정적 create() 메서드를 제공하는 편집기:
<ckeditor [editor]="Editor"></ckeditor>
Config
:<ckeditor [config]="{ toolbar: [ 'heading', '|', 'bold', 'italic' ] }" ></ckeditor>
Data
:<ckeditor data="<p>Hello, world!</p>" ></ckeditor>
또는
@Component( {
// ...
} )
export class MyComponent {
public editorData = '<p>Hello, world!</p>';
// ...
}
<ckeditor [data]="editorData" ></ckeditor>
지원되는 @Output 속성
Change
:편집기 및 CKEditor 5
change:data
이벤트 개체를 포함하는 개체로 실행됩니다.<ckeditor [editor]="Editor" (change)="onChange($event)"></ckeditor>
import * as ClassicEditor from '@ckeditor/ckeditor5-build-classic';
import { ChangeEvent } from '@ckeditor/ckeditor5-angular/ckeditor.component';
@Component( {
// ...
} )
export class MyComponent {
public Editor = ClassicEditor;
public onChange( { editor }: ChangeEvent ) {
const data = editor.getData();
console.log( data );
}
...
}
자리 표시자 설정
<ckeditor [config]="{placeholder: 'Type the content here!' }" ></ckeditor>
편집기 인스턴스에 액세스
이렇게 하려면 구성 요소를 가리키는 템플릿 참조 변수
#editor
를 만듭니다.<ckeditor #editor [editor]="Editor"></ckeditor>
그런 다음
<ckeditor>
로 장식된 속성을 사용하여 @ViewChild( 'editor' )
구성 요소를 가져오고 필요할 때 편집기 인스턴스에 액세스합니다.@Component()
export class MyComponent {
@ViewChild( 'editor' ) editorComponent: CKEditorComponent;
public getEditor() {
// Warning: This may return "undefined" if the editor is hidden behind the `*ngIf` directive or
// if the editor is not fully initialised yet.
return this.editorComponent.editorInstance;
}
}
Angular에서 리치 텍스트 편집기를 추가하는 방법에 대한 제 블로그를 읽어 주셔서 감사합니다. 자세한 공식 문서는 CKEditor Angular를 참조하세요.
Reference
이 문제에 관하여(Angular 앱에 리치 텍스트 편집기를 추가하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/deekshithrajbasa/how-to-add-rich-text-editor-to-an-angular-app-4nm2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)