在 Angular 应用程序中集成 Quill 文本编辑器

Tan*_*eel 12 quill angular ngx-quill

我正在学习如何创建博客网站。我首先尝试了一个简单的例子。但是文本编辑器没有显示在我的屏幕上。我用npm install --save quill@1.3.6 ngx-quill命令安装了 Quill 。我app.component.html的很简单。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand ml-auto mr-auto" href="#">Quill JS Editor with Angular</a>
</nav>

<div class="container">
  <div class="row pt-5">
    <div class="col-md-8">
      <form [formGroup]="editorForm" (ngSubmit)="onSubmit()">
        <div class="form-group">
          <label for="editor">
            <h3>Editor</h3>
          </label>
          <quill-editor></quill-editor>
        </div>
      </form>
    </div>
    <div class="col-md-4 bg-light p-4">
      <h3>Output</h3>
      <p class="my-5"></p>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

其实应该是这样的。 在此处输入图片说明

我还引进FormGroupFormControl@angular/forms我的app.component.ts包含以下代码。

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  editorForm: FormGroup;
  ngOnInit() {
    this.editorForm = new FormGroup({
      'editor': new FormControl(null)
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误。 在此处输入图片说明

整个项目在github 上。请告诉我在这个项目中我还缺少什么。

Meh*_*lal 28

请按照以下步骤操作:

1-安装:

 npm install ngx-quill
 npm install @angular/core
 npm install @angular/common
 npm install @angular/forms
 npm install @angular/platform-browser
 npm install quill
 npm install rxjs — peer dependencies of rxjs-quill
Run Code Online (Sandbox Code Playgroud)
  • 在 index.html 中包含 quilljs 的主题样式:bubble.css、snow.css,或者将它们添加到带有@import语句的css/scss 文件中,或者在构建过程中添加外部样式。

使用以下代码更新 angular.json 文件:

  “styles”: [
          “./node_modules/@angular/material/prebuilt-themes/indigo-pink.css”,
          “src/styles.css”,
          “./node_modules/quill/dist/quill.core.css”,
          “./node_modules/quill/dist/quill.snow.css”
        ],
        “scripts”: [“./node_modules/quill/dist/quill.js”]
Run Code Online (Sandbox Code Playgroud)

将它导入你的 app.module.ts

   import { QuillModule } from 'ngx-quill'
Run Code Online (Sandbox Code Playgroud)

并在进口中添加它像波纹管

 @NgModule({
  declarations:[],
  imports:[
    CommonModule,
    QuillModule.forRoot(),
  ]
 })
Run Code Online (Sandbox Code Playgroud)

在您的 component.ts 文件中,您可以像下面的代码一样修改编辑器样式:

   editorStyle = {
     height: '200px'
   };
Run Code Online (Sandbox Code Playgroud)

在你的 component.html 文件中,你可以像下面的代码一样调用它:

 <div id="quill">
                <p>Content *</p>
                <quill-editor [styles]="editorStyle" placeholder="Enter Text" [modules]="config"
                    formControlName="yourCtrlname" required>
                </quill-editor>
            </div>
Run Code Online (Sandbox Code Playgroud)

您还可以查看:https : //lifecoders.wordpress.com/angular/quill-rich-text-editor-setup-in-angular-7-8/

在这里:https : //www.npmjs.com/package/ng-quill

  • 是的,我只是添加了答案中缺少的额外细节,以便帮助一些初级开发人员并节省时间......:) (6认同)

yur*_*zui 6

这意味着您尚未正确配置该库,特别是您应该导入QuillModule.forRoot()以便正确初始化该库提供程序提供的所有内容。

@NgModule({
  imports: [
    BrowserModule,
    QuillModule.forRoot(),
...
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这就是文档告诉我们的做法。

  • 因为只有 forRoot 我们才能获得配置提供程序 https://github.com/KillerCodeMonkey/ngx-quill/blob/2408e03eb8cf19b2fff33fb3fb3aeaa480d15600/src/quill.module.ts#L26 也许在那个视频中那个家伙使用了旧版本,而 forRoot 没有使用存在 (2认同)
  • 视频中安装了 ngx-quill 4.6.3。你有7个版本。现在您可以检查更改日志 https://github.com/KillerCodeMonkey/ngx-quill/releases/tag/7.0.0 (2认同)