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