我正在使用Ionic 3开发PWA。我已经使用CKEDITOR从用户那里获得丰富的输入。 我正在使用以下代码在 index.html 中导入CKEDITOR库:
<script src="https://cdn.ckeditor.com/4.6.1/full/ckeditor.js"></script>
我还按照文档中的说明在app.module.ts中导入CKEditorModule。
然后,我应该可以在我的应用程序中使用CKEDITOR类。问题在于,第一次加载时会显示错误:
找不到名称“ CKEDITOR”。您是说实例成员吗 “ this.CKEDITOR”?
然后,如果我保存我的编辑器并实时重新加载,则CKEDITOR可以正常工作。
我尝试使用诸如 ngAfterViewInit()之类的生命周期事件,以便仅在应该完全加载之后才使用CKEDITOR变量,这是徒劳的。
我还使用了 ionViewDidEnter 生命周期,例如:
ionViewDidEnter() {
CKEDITOR.on('instanceReady', function (this) {
console.log(this);
//Disable automatic inline for divs with contenteditable true.
this.disableAutoInline = true;
this.instances["titre"].on('focus', function (this) { this.execCommand('selectAll', false, null); });
this.instances["adress"].on('focus', function (this) { this.execCommand('selectAll', false, null); });
this.instances["budget"].on('focus',function (this) { this.execCommand('selectAll', false, null); });
this.instances["name"].on('focus', function (this) { this.execCommand('selectAll', false, null); });
this.instances["description"].on('focus', function (this) { this.execCommand('selectAll', false, null); });
});
在第一次加载时仍无法识别CKEDITOR?关于如何在这里找到问题的任何提示?
这里是Stackblitz,可帮助您更好地理解: (您需要转到控制台以查看错误,在stackblitz上,页面最终将重新加载,因此编辑器可以工作,但就我而言,它只是停留在错误上。
Stablitz的编辑:Stackblitz edit
答案 0 :(得分:0)
我调查了您使用过ng2-ckeditor的代码。作为此软件包,您没有执行第一步
安装在您的应用程序中包括CKEditor javascript文件:
<script> src="https://cdn.ckeditor.com/4.5.11/full/ckeditor.js"></script>
您需要将CDN添加到您的index.html
中,并且已经正确地将CKEditorModule
导入了您的app.module.ts
中。
现在,您必须在组件中使用
<ckeditor
[(ngModel)]="ckeditorContent">
</ckeditor>
快乐编码!
答案 1 :(得分:0)
我找到了解决方法:
您需要添加
declare var CKEDITOR: any;
.ts文件中@component之前,它将起作用。