我正在将CKeditor v11.1.1和CountableJS用于单词计数。
目前,我附上这样的可数项:
editor.model.document.on( 'change:data', ( evt, data ) => { //call countableJS wordcount });
这对于正常的键入和退格键工作正常,但是在我CTRL+A -> Delete
或CTRL+V
粘贴一些文本时失败。该事件不会触发,因此单词计数不会更新,直到我再次开始输入为止。
文档专门说“ [change:data]被触发影响编辑器数据的更改”,但事实并非总是如此。我也试过只听change
,但行为类似。
我在这里误会了什么吗?我还能听另一件事吗?
答案 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 );
} );
实际上,如果不触发此事件,则编辑器将无法工作。此事件开始将模型中的更改转换为视图。如果某些更改(删除内容,粘贴某些内容)没有被转换,它们将不会出现在视图中。
因此,您的代码中有错误还是...或者我不知道:)