一、問題
Angular2中,在使用ckeitor4.x編輯器的頁面中,切換到其他頁面,其他頁面會報警告,警告內(nèi)容如下:
[CKEDITOR] Error code: editor-destroy-iframe. ckeditor.js:21
[CKEDITOR] For more information about this error go to http://docs.ckeditor.com/#!/guide/dev_errors-section-editor-destroy-iframe
根據(jù)鏈接文檔解釋如下:

翻譯過來就是,需要我們在ckeditor從dom中卸載前先把ckeditor銷毀。
看了angular1中的使用方式是在進(jìn)入頁面時先判斷有沒有ckeditor的實例,如果有就先銷毀再創(chuàng)建新的,和這里是一個意思。只是這過程中我該如何在angular2中去實現(xiàn)這個銷毀的過程。
嘗試了一些方法都沒有成功。沒轍,只能在github.com上查看ng2-ckeditor這個項目里的issue里是否有這個問題。果然有。參考了下,改變兩處引入方式,一個是index.html里ckeditor的js地址,二是頁面中使用ckeditor組件的位置,config信息里添加插件需求。
二、解決步驟
- 在應(yīng)用的index.html頁面中將引入的js地址修改為:
<script src="https://cdn.ckeditor.com/4.5.11/full-all/ckeditor.js"></script>
2.使用位置修改
<ckeditor [(ngModel)]="templateData.content" [config]="{extraPlugins: 'divarea'}"></ckeditor>
增加[config]="{extraPlugins: 'divarea'}", 這里需要使用插件divarea
三、總結(jié)
問題是解決了,但原理是什么還需要再看看。不過到是體會了遇到解決不了的問題,應(yīng)該回到社區(qū),回到項目根源。