javascript - Vue和Summernote - 从数据库加载时模型中的内容未显示在表单中
问题描述
好的,我有一个表单,我在其中多次使用所见即所得的编辑器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>
在道具中,从数据库加载后,数据正确显示,即:
model:"<p> ... my content ...</p>"
同样,在我的表格中它显示正确,即:
form: Object
areaOfWork: "<p> ... my content ...</p>"
...
但它没有显示在html-editor
. 我被困住了——也许这是我忽略的超级简单的事情,但到目前为止我没有找到任何对我有帮助的东西。感谢您的想法和意见
解决方案
感谢您的回答,@soroush,但这似乎不是问题。有一个沟通,它似乎工作。我确实看到我的表格也填写了正确的数据。
在玩了很多想法之后,我找到了一个简单的解决方法:watcher
我添加了
watch: {
areaOfWork: (val) => {
$('#areaOfWork').summernote("code", val);
}
},
到我的模板和相应的变量到我的data()
. 当我调用我的数据库并读取项目时,我为观察者提供数据并且它可以工作。
不过,我不明白为什么vm.model
在 onInit 回调中没有显示,但它似乎有效,我想为您提供一个答案。也许它可以帮助别人
推荐阅读
- javascript - 如何获取div的html文本
- javascript - 如果数据相同,则推送对象数组
- arrays - svelte - 使用带有 Each 函数的嵌套 json 数组
- python - 我收到此错误“IndentationError:意外缩进”
- python-3.x - 如何将 input() 函数限制为仅一种数据类型?
- vb.net - 如何使用 VB.NET 在类中访问类中的数据
- java - 为什么当我尝试获取原始邮件时 Gmaill API 返回 null?
- c++ - 读写二进制文件的最有效方法
- android-notifications - android可以用deeplink开普通班吗?
- web3 - Web3 合同调用是 alawys 返回 null