CKEditor 5更改事件并非总是触发

时间:2018-10-30 02:07:22

标签: ckeditor ckeditor5

我正在将CKeditor v11.1.1和CountableJS用于单词计数。

目前,我附上这样的可数项:

editor.model.document.on( 'change:data', ( evt, data ) => { //call countableJS wordcount });

这对于正常的键入和退格键工作正常,但是在我CTRL+A -> DeleteCTRL+V粘贴一些文本时失败。该事件不会触发,因此单词计数不会更新,直到我再次开始输入为止。

文档专门说“ [change:data]被触发影响编辑器数据的更改”,但事实并非总是如此。我也试过只听change,但行为类似。

我在这里误会了什么吗?我还能听另一件事吗?

1 个答案:

答案 0 :(得分:2)

我刚刚检查了一下,当我按 Ctrl + Delete Ctrl + V时,它对我来说很好。您可以在https://jsfiddle.net/auxe23b7/1/上对其进行测试:

ClassicEditor
    .create( document.querySelector( '#editor' ) )
    .then( editor => {
        console.log( editor );

        editor.model.document.on( 'change:data', ( evt, data ) => {
            console.log( data );
        } );
    } )
    .catch( error => {
        console.error( error );
    } );

实际上,如果不触发此事件,则编辑器将无法工作。此事件开始将模型中的更改转换为视图。如果某些更改(删除内容,粘贴某些内容)没有被转换,它们将不会出现在视图中。

因此,您的代码中有错误还是...或者我不知道:)