1

私は(私にとって)非常に困難な状況にあります。ckEditor のディレクティブを作成しました。実際、ウェブ上のさまざまな場所で見られるのと同じです。これはほとんどの場合機能します。ただし、100%の時間で機能させるには、これを行う必要がありました。

ngModel.$render = function () {
    if (typeof ngModel.$modelValue != 'undefined') {
        if (ngModel.$modelValue != null) {
            ck.setData(ngModel.$modelValue);
            timer = setTimeout(function () {
                ck.setData(ngModel.$modelValue);
            }, 1000);
            timer = setTimeout(function () {
                ck.setMode('source');
                ck.setMode('wysiwyg');
            }, 1000);
        }   
    }
};

次の行に注意してください。

ck.setMode('source');
ck.setMode('wysiwyg');

これは機能しますが、次のようなエラーが表示されます。

Uncaught TypeError: Cannot read property 'on' of undefined ckeditor.js:299
CKEDITOR.editable.CKEDITOR.tools.createClass.proto.attachListener ckeditor.js:299
CKEDITOR.editable.CKEDITOR.tools.createClass.proto.setup ckeditor.js:304
k ckeditor.js:589
(anonymous function)

何が起こっているのか、なぜこのエラーが発生するのかについて、誰かアドバイスをいただけますか?

4

1 に答える 1

1

そして、あなたがこの方法を試してみると、それはより良いですか?

ck.setMode('source', function() {
    ck.setMode('wysiwyg');
} );

はいの場合、これらのメソッドが非同期であることが問題の原因です。1つずつ実行することはできませんが、完了するまで待つ必要があるため、コールバックを受け入れてから実行されます。

editor.setModeドキュメントを参照してください。

PS。editor.setData非同期でもあります。

于 2013-10-18T06:37:13.150 に答える