Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将自己的元素限制为仅包含纯文本?_Javascript_Ckeditor5 - Fatal编程技术网

Javascript 如何将自己的元素限制为仅包含纯文本?

Javascript 如何将自己的元素限制为仅包含纯文本?,javascript,ckeditor5,Javascript,Ckeditor5,如何创建只能包含纯文本的块元素?(无粗体、斜体等) 我已将我的元素注册为: model.schema.register(mtHeaderLine, { // Changing inheritAllFrom to '$block' creates an editable element // but then it can contain bold text. inheritAllFrom: '$text', allowIn: mtHeaderDiv, isBlo

如何创建只能包含纯文本的块元素?(无粗体、斜体等)

我已将我的元素注册为:

model.schema.register(mtHeaderLine, {
   // Changing inheritAllFrom to '$block' creates an editable element
   // but then it can contain bold text.
   inheritAllFrom: '$text',  
   allowIn: mtHeaderDiv,
   isBlock: true
});
然后我沮丧地说:

editor.conversion.for('downcast').add(downcastElementToElement( { model: mtHeaderLine, view: 'div' }
view: (modelElement, viewWriter ) => { 
    const viewElement=viewWriter.createEditableElement('div',{ 'class': (mtHeaderLine) ,isghost: isGhost });
    return viewElement;
}
但这会创建一个我无法编辑的元素

我还试图用以下方式来表达我的沮丧:

editor.conversion.for('downcast').add(downcastElementToElement( { model: mtHeaderLine, view: 'div' }
view: (modelElement, viewWriter ) => { 
    const viewElement=viewWriter.createEditableElement('div',{ 'class': (mtHeaderLine) ,isghost: isGhost });
    return viewElement;
}
但这也没有给我一个可编辑的元素。

您需要使用。该方法允许您注册一个回调,该回调将禁止某些上下文中的
$text
上的所有属性(例如,模型
元素的子元素):


演示:

Hi,为什么不使用配置文件删除功能?因为我只想为我自己的特定元素删除该特性。我仍然希望粗体和斜体可以处理所有其他文本是的,您可以创建一个配置文件,仅根据您的需要应用(通常用于您唯一需要的纯文本块)。我可能不明白你到底想要什么。顺便说一句,这很好用。唯一的小问题是,粗体按钮看起来仍然可以按下。但这可能只是我的自定义gui代码,因为我不使用标准工具栏。在上述解决方案中,应该禁用该命令。因此,如果您的按钮触发了命令(就像它应该触发的那样),那么无论如何都不会发生任何事情。状态绑定也是您需要与UI一起实现的。@Rainmar如果我还想让按钮显示它们被禁用的事实,我该怎么做?我的按钮当前使用on(“change”,(evt,name,isEnabled)侦听更改,如果命令被显式禁用,则该功能可以正常工作。但是addAttributeCheck函数从未触发任何更改事件。我是否应该侦听其他内容?