好的,我有一个表单,我在其中多次使用所见即所得编辑器summernote。当我填写表单时,模型被正确更新,内容被显示,结果被正确保存到数据库中。但是当我想编辑和加载数据库中的数据时,模型在开发工具中正确显示内容,但没有任何内容显示在屏幕上。
这就是我所拥有的:
我有一个组件要加载并启动summernote编辑器
<template>
<textarea class="form-control"></textarea>
</template>
<script>
export default{
props : {
model: {
required: true
},
height: {
type: String,
default: '150'
}
},
mounted() {
let config = {
height: this.height,
};
let vm = this;
config.callbacks = {
onInit: function () {
$(vm.$el).summernote("code", vm.model);
},
onChange: function () {
vm.$emit('update:model', $(vm.$el).summernote('code'));
},
};
$(this.$el).summernote(config);
}
}
</script>
我有一个表单(这里只是它的一部分),其中我将Summernote组件加载为html-editor
:
<html-editor
:model.sync="form.areaOfWork"
:class="{ 'is-invalid': form.errors.has('areaOfWork') }"
name="areaOfWork"
id="areaOfWork"></html-editor>
在道具中,从DB加载后,数据正确显示,即:
model:"<p> ... my content ...</p>"
同样,在我的表格中它正确地显示了,即:
form: Object
areaOfWork: "<p> ... my content ...</p>"
...
但是它没有在html-editor
中显示。我被卡住了-也许它是我忽略的一些超级简单的东西,但是到目前为止我没有找到任何帮助我的东西。感谢你的想法和投入
3条答案
按热度按时间u5rb5r591#
我认为这个问题源于在一个项目中使用jquery和vue!
因为vue使用的是虚拟DOM,而jquery改变的是真实的DOM,这就造成了冲突!所以最好不要在一个项目中同时使用它们,或者像下面的链接一样安全地使用jquery:
https://vuejsdevelopers.com/2017/05/20/vue-js-safely-jquery-plugin/
kcwpcxri2#
谢谢你的回答,@soroush,但这似乎不是问题所在。有一个通信,它似乎工作。我确实看到我的表单被填写正确的数据以及。
在尝试了许多方法之后,我找到了一个简单的解决方法:观察者
我补充道
当我调用我的数据库并读取项目时,我为监视器提供数据,它就工作了。
尽管如此,我还是不明白为什么
vm.model
在onInit回调中没有显示出来,但是由于它似乎可以工作,我想为您提供一个答案。axzmvihb3#
于飞:
JS: