新建的时候没有问题,正常提交,修改时候后台传过来的数据正确,但是渲染会导致前一个audio被后面一个覆盖掉,刷新audio标签就没有了。
1. 覆盖问题:
将代码:that.$refs.editRef.content = data.content
改成:document.querySelector("div.ql-editor").innerHTML = data.content
2. 刷新audio标签消失问题:
将新建的代码在渲染时候再重新手动建一遍audio标签,保证修改页面刷新时audio标签的渲染
showEditor(url, id) {
let BlockEmbed = Quill.import("blots/block/embed");
class AudioBlot extends BlockEmbed {
static create(value) {
let node = super.create();
node.setAttribute("src", url);
node.setAttribute("controls", true);
node.setAttribute("controlsList", "nodownload");
node.setAttribute("id", id);
return node;
}
static value(node) {
return {
url: node.getAttribute("src"),
};
}
}
AudioBlot.blotName = "audio";
AudioBlot.tagName = "audio"; //自定义的标签为audio
Quill.register(AudioBlot);
},
实际上,当我解决了第一个问题的时候,第二个问题也迎刃而解