CKEditor 5如何从任何小部件/模型/视图获取单击、更新和删除事件

CKEditor 5如何从任何小部件/模型/视图获取单击、更新和删除事件,ckeditor,ckeditor5,ng-ckeditor,Ckeditor,Ckeditor5,Ng Ckeditor,如何获得有关CKEditor 5型号、视图和小部件的单击、更新和删除事件的通知 假设我有一个自定义插件实现,类似于link插件或highlighter插件。现在,我如何获得以下事件 当用户单击链接/高亮显示的元素时 当用户更新高亮显示元素的内部内容时 当用户从编辑器中删除整个高亮显示的链接或高亮显示元素时 元素可以是模型元素/视图元素/或小部件。以下是我使用的代码。它必须位于插件的init()方法中。我不知道这是否是正确的方法,但它对我有效(tm) 请注意,如果单击AttributeElem

如何获得有关CKEditor 5型号、视图和小部件的单击、更新和删除事件的通知

假设我有一个自定义插件实现,类似于link插件或highlighter插件。现在,我如何获得以下事件

  • 当用户单击链接/高亮显示的元素时
  • 当用户更新高亮显示元素的内部内容时
  • 当用户从编辑器中删除整个高亮显示的链接或高亮显示元素时

元素可以是模型元素/视图元素/或小部件。

以下是我使用的代码。它必须位于插件的init()方法中。我不知道这是否是正确的方法,但它对我有效(tm)


请注意,如果单击AttributeElement(如粗体文本),这似乎会失败。在这种情况下,您可以调用target.parent,直到得到结果。

您找到答案了吗?@MTilsted nope
            const editor = this.editor;
            const model=editor.model;
            const editingView=editor.editing.view;
            editingView.addObserver( ClickObserver );
            const viewDocument = editor.editing.view.document;

            this.listenTo( viewDocument, 'click', (event,data) => {
                const target=data.target; // This is the view the user clicked on 
                const modelObj=editor.editing.mapper.toModelElement(target);
// modelObj is the model object for the element the user clicked on. Now you just need to test if clicking on this model is something you are interested in.    

    //          console.log(modelObj);
            } );