gpt4 book ai didi

javascript - 如何在 CKEditor5 中创建一个 Matcher 实例?

转载 作者:行者123 更新时间:2023-11-30 19:27:21 26 4
gpt4 key购买 nike

我试图根据他的 ID 在模型中找到一个元素。查看文档,似乎 Matcher类可以做我需要的。

但是,我无法创建 Matcher 实例,并且那里的所有示例仅展示了如何使用 Matcher,而没有展示如何创建实例。

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

最佳答案

如果你想对模型进行操作,那么你应该使用与engine/model相关的类。你说的Matcher属于engine/view,不适合模型运行。

如果你想遍历模型并对其进行操作,那么你可以使用 TreeWalker类(class)。您只需在整个模型上创建范围,或在开头创建起始位置。

另一种选择是获取 root element并遍历它的 children递归地。

例如,您可以这样使用 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;
}

关于javascript - 如何在 CKEditor5 中创建一个 Matcher 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56763824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com