手动实现默认字体不会更新 getData()

问题描述 投票:0回答:0

我正在尝试手动实现默认字体,因为没有直接的方法。我不能将 p 标签 CSS 编辑为某种字体,因为我想保持以前的文本相同,只应默认新文本。

例如我有这样的代码:

editor.model.document.on('change:data', event => {
          if (element.firstChild.nodeName === 'BR') {
             element.setAttribute('style', 'font-family:Helvetica;font-size:24px');
          }
})

在编辑器和 DOM 中,这有效。但是,当我调用 editor.getData() 时,字体系列和字体大小不存在。我相信这是因为模型或视图剥离了属性。我不确定我将如何做到这一点,以便属性保留在模型/视图中并更新 getData。

我试过向上转型和向下转型,但没能成功。我不确定我做对了还是真的需要。我也尝试过使用 writer 和类,但是没有看到 getData() 中的变化或者当我打开 Inspector

editor.conversion.for('upcast').attributeToAttribute({
    view: {
            key: 'font-family'
     },
    model: {
      key: 'fontFamily',
      value: true,
    },
});

editor.conversion.for('downcast').attributeToAttribute( {
  model: 'font-family',
  view: {
    key: 'style',
    value: viewWriter => (attributeValue, viewElement) => {
      viewWriter.setStyle('font-family', attributeValue, viewElement);
    },
  },
});

我将如何着手让 getData 反映我在 UI/DOM 中的更改?请和谢谢

ckeditor ckeditor5
© www.soinside.com 2019 - 2024. All rights reserved.