上一行设置了align为center,换行后下一个会继承上一行的格式,我想使用Quill.formatLine(newLineIndex, 0, ‘align’, 'left')来左对齐,发现始终不能生效。
参看quill.js源码,发现align没有left的配置
var config = {
scope: _parchment2.default.Scope.BLOCK,
whitelist: ['right', 'center', 'justify']
};
var AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);
var AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);
var AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);
因此只能获取换行后的格式,将align设置为undefined,再调用Quill.formatLine
function insertImage(editor: Quill | undefined, url: string) {
if (!editor) return;
const {index} = editor.getSelection(true);
editor.insertEmbed(index, 'image', url);
editor.formatLine(index, 0, 'align', 'center')
editor.insertText(index+1, '\n');
const newLineIndex = index + 2;
const newLineFormat = editor.getFormat(newLineIndex, length);
newLineFormat['align'] = undefined;
editor.formatLine(newLineIndex, 0, newLineFormat);
editor.setSelection(newLineIndex, 0);
}