本指南展示如何在 Angular 应用程序中使用 TinyMCE Angular component 从 .zip 包集成 TinyMCE。

前置条件

此流程需要 Node.js (和 NPM)。

流程

  1. 在终端或命令提示符中,全局安装 Angular CLI Tool。

    npm install -g @angular/cli
  2. 创建一个名为 tinymce-angular-demo 的新 Angular 项目。

    ng new --defaults --skip-git tinymce-angular-demo
  3. 导航至新项目目录并安装 @tinymce/tinymce-angular。

    cd tinymce-angular-demo && npm install @tinymce/tinymce-angular
  4. 将 TinyMCE zip 中的 tinymce/js 文件夹内容解压到 src 文件夹。

  5. 创建 src/app/editor.component.ts,内容如下:

    import { Component } from '@angular/core';
    import { EditorComponent } from '@tinymce/tinymce-angular';
    
    // 确保导入 TinyMCE 以注册其他组件所需的全局变量
    import '../tinymce/tinymce';
    // DOM model
    import '../tinymce/models/dom/model';
    // Theme
    import '../tinymce/themes/silver';
    // Toolbar icons
    import '../tinymce/icons/default';
    // Editor styles
    import '../tinymce/skins/ui/oxide/skin.js';
    // Content styles, including inline UI like fake cursors
    import '../tinymce/skins/content/default/content.js';
    import '../tinymce/skins/ui/oxide/content.js';
    
    // Import plugins
    import '../tinymce/plugins/advlist';
    import '../tinymce/plugins/autolink';
    import '../tinymce/plugins/link';
    import '../tinymce/plugins/image';
    import '../tinymce/plugins/lists';
    import '../tinymce/plugins/table';
    import '../tinymce/plugins/code';
    import '../tinymce/plugins/help';
    // Include resources that a plugin lazy-loads at the run-time
    import '../tinymce/plugins/help/js/i18n/keynav/en.js';
    import '../tinymce/plugins/wordcount';
    
    @Component({
      selector: 'app-editor',
      standalone: true,
      imports: [EditorComponent],
      template: `
        <editor
          [init]="init"
          licenseKey="gpl"
        />
      `
    })
    export class MyEditorComponent {
      init: EditorComponent['init'] = {
        height: 500,
        plugins: 'advlist autolink lists link image table code help wordcount',
        toolbar: 'undo redo | blocks | bold italic | alignleft aligncenter alignright | bullist numlist | help'
      };
    }
  6. 更新 app.component.ts 以导入 MyEditorComponent。

    import { Component } from '@angular/core';
    import { MyEditorComponent } from './editor.component';
    
    @Component({
      selector: 'app-root',
      standalone: true,
      imports: [MyEditorComponent],
      template: `
        <h1>TinyMCE Angular Demo</h1>
        <app-editor />
      `
    })
    export class AppComponent {}
  7. 运行 Angular 开发服务器

    ng serve

其他资源