为属性到元素转换插入文本失败

时间:2019-07-10 13:02:23

标签: ckeditor ckeditor5

当组件具有“变量”属性时,我正在尝试在组件中插入文本。正在设置属性,向下运行attributeToElement,但未将文本添加到属性所在的元素中。

我尝试了很多不同的配置,例如返回容器元素或在返回之前将其转换为小部件,但它们似乎都不起作用。我放置了一个断点,它在调用我的垂头丧气的函数中命中了这个return语句:

if (!conversionApi.consumable.consume(data.item, evt.name)) {
    return;
}

这是我的转换代码。

conversion.for( 'upcast' ).elementToAttribute( {
            model: {
                key: 'variable',
                value: viewElement => {
                    return viewElement.data.splice(1, -1)
                },
            },
            view: {
                name: 'bracketvalue',
                classes: 'bracket-component-text'
            }
        } );
        conversion.for( 'downcast' ).attributeToElement( {
            model: 'variable',
            view: ( modelValue, viewWriter ) => {
                const writer = viewWriter
                const text = writer.createText(`[${modelValue || "placeholder"}]`)
                return text
            }
        } );

我只希望父组件显示一个带有可变内容的文本节点,并且如果有更好或更惯用的方式来处理它,我可以接受。当前,似乎有关我的配置的某些内容阻止了文本节点成为父级的有效子级。

我知道我可以定义一个普通的元素到元素转换器,但是我试图保留在父组件内部渲染普通可编辑元素的能力(如果该属性不存在),所以我宁愿不去用这种方法。

0 个答案:

没有答案
相关问题