Javascript 如何在CKEditor5中创建匹配器实例?

Javascript 如何在CKEditor5中创建匹配器实例?,javascript,ckeditor,ckeditor5,Javascript,Ckeditor,Ckeditor5,我试图根据他的id在模型中找到一个元素。 通过查看文档,该类似乎可以满足我的需要 但是,我无法创建Matcher实例,那里的所有示例都只显示了如何使用Matcher,而没有显示如何创建实例 如果这是一个愚蠢的问题,很抱歉,但是如何创建新的Matcher实例?如果您想在模型上操作,那么应该使用与引擎/模型相关的类。您提到的Matcher属于engine/view,因此不适合车型操作 若您想要遍历模型并对其进行操作,那个么您可以使用类。您只需要在整个模型上创建范围,或者在开始处创建开始位置 另一个选

我试图根据他的id在模型中找到一个元素。 通过查看文档,该类似乎可以满足我的需要

但是,我无法创建Matcher实例,那里的所有示例都只显示了如何使用Matcher,而没有显示如何创建实例


如果这是一个愚蠢的问题,很抱歉,但是如何创建新的Matcher实例?

如果您想在模型上操作,那么应该使用与
引擎/模型相关的类。您提到的
Matcher
属于
engine/view
,因此不适合车型操作

若您想要遍历模型并对其进行操作,那个么您可以使用类。您只需要在整个模型上创建范围,或者在开始处创建开始位置

另一个选项可以是递归地获取并迭代它

例如,您可以通过以下方式使用tree walker:

const txt = ( editor => {
    const position = new Position( editor.model.document.getRoot(), [ 0 ] );
    const walker = new TreeWalker( { startPosition: position } );

    for ( const element of walker ) {
        // do sth with 'element'
        // but be careful on element boundaries
    }

    return outputText;
} )( this.editor );
您可以在这里递归遍历子元素,其中
rootElement
可以用作入口元素

function getAllTextFromElementAndChildren( element ) {
    if( element.is( 'text' ) ){
        return elemen.data;
    }

    let text = '';

    for ( const child of element.getChildren() ) {
        const childText = getAllTextFromElementAndChildren( child );

        text += childText;
    }

    return text;
}