Angular 的 CKEditor 4。 CKEDITOR单例和外部配置

CKEditor 4 for Angular. CKEDITOR singleton and external configuration

我希望将 CKEDITOR 4 集成到我的 angular 应用程序中,但我很难理解如何进行一些配置,这些配置在与其他框架(即 jQuery)一起使用时会得到更好的解释。 我遵循了 this 指南,但它非常基础,并没有阐明很多方面:

  1. 最重要的:如何访问 CKEDITOR 单例,它提供了许多功能(例如以编程方式覆盖配置)。
  2. 关于配置,指南中描述的only方式是将配置指令添加到组件,但这种情况不符合我的需要,因为我希望将外部配置文件与许多其他配置文件一起使用选项。
  3. 没有描述如何添加自定义插件。

有没有人和我有同样的需要可以帮忙?

编辑: 通过在 angular.json 文件中添加脚本部分,我可以找到一种加载本地包版本的方法。这保证 ckeditor.js 文件是从本地而不是 CDN 加载的,但它不起作用。 我在 ckeditor github 中打开了一个 ticket,但他们没有给出完整解释为什么它不起作用就关闭了。 非常欢迎帮助,因为我坚持这个!

我终于想出了如何实现我的目标。首先,显然在 angular.json 文件中使用 script 方法存在错误,因此无法使用。我所做的是将 ckeditor 包部署为我的 Web 项目的静态资源(不同于 angular)。 然后,在 ckeditor 标签中,我使用了 editorUrl 属性来访问这个本地资源:

<ckeditor #ckeditortextarea editorUrl="http://localhost:7001/myapp/ckeditor4/ckeditor.js" id="myeditor" name="myeditor" tagName="textarea" (dataChange)="change($event)" (blur)="touched($event)" (ready)="ready($event)"></ckeditor>

成功了! 通过这种方法,可以自定义本地部署包中的所有内容。 关于 CKEDITOR 单例的访问,比预期的要容易。 在您的组件中声明一个变量(即 CKEDITOR)并在 ready 事件中将其分配为

this.CKEDITOR=window['CKEDITOR'];

就这些了!