Froala编辑器在Vue组件里修改数据后内容没更新
在Vue项目里用Froala编辑器,通过v-model绑定数据后,手动修改数据属性,编辑器内容却不更新。比如点击按钮修改formData.content的值,页面其他地方能显示新内容,但编辑器里还是旧内容。
尝试过在mounted里调用refresh方法,也试过用this.$forceUpdate()都不行。控制台没有报错,但就是不刷新编辑器内容。代码大概是这样的:
export default {
data() {
return {
formData: {
content: '<p>初始内容</p>'
}
}
},
methods: {
updateContent() {
this.formData.content = '<p>新内容没显示</p>'
},
onEditorChange(content) {
this.formData.content = content
}
}
}
是不是需要手动触发编辑器的更新?或者v-model绑定的方式有问题?求大神指点
html.set方法来更新内容。修改你的
updateContent方法如下:这样就能强制 Froala 编辑器更新内容。
解决办法是在修改内容之后手动调用Froala的
html.set方法来更新编辑器里的内容。你可以通过ref来获取Froala实例。代码大概是这样改的:
关键是调用
html.set来强制更新Froala里面的内容。这样改完之后,点击按钮的时候编辑器就能正确显示最新的内容了。踩过这个坑之后,我现在看到富文本编辑器就头疼 😂