vue.js - 在 Vue 数据中分配相同的值不会在 dom 中改变
问题描述
当我在 Vue 数据中分配相同的值时,我想在 dom 中更改或反映。请查看评论以获取更多详细信息。当我分配相同的值时,dom 永远不会改变。
<div id="app">
<div>
<span
contenteditable="true"
v-text="setting.change_setting_value === null ? setting.setting_default_value : setting.change_setting_value"
@blur="changeSetting"
>
</span>
</div>
</div>
const app = new Vue({
el: "#app",
data: {
setting_default_value: "default value",
change_setting_value: null
},
method: {
changeSetting(evt) {
if(evt.target.innerText === "") {
// dosen't change in the dom because setting_default_value never change its is the same value as before
// now i want to know how can i change back the contenteditable span when i assign the same value
// i don't want to touch the dom
this.setting.setting_default_value = "default value" // not reflect in the dom what i can do to change the effect
// if i change the default value something else it will change in the dom in this case its the span element
this.setting.setting_default_value = "change value" // reflect in the dom
} else {
this.setting.change_setting_value = "setting value has been change"
}
}
}
});
解决方案
为什么分配相同的值时需要刷新dom?无论如何,如果是针对某些特殊情况,请尝试this.$forceUpdate()
- 请参阅https://vi.vuejs.org/v2/api/#vm-forceUpdate
推荐阅读
- r - 编写一个函数以将另一个函数包含在回归模型中
- tensorflow - 将多 GPU 与 keras.utils.multi_gpu_model 一起使用时,SageMaker 失败
- r - R Lubridate 默认按字母顺序排列月份和工作日
- shell - 使用 shell 脚本删除一些文本?
- javascript - 映射数组中的对象
- ios - VC之间的数据传递:Objective C
- c++ - C ++ Builder中的未知类型名称“Shape1”
- swift - 线程 1:由于 Button 导致的信号 SIGABRT 错误
- lambda - 用 α 减少的 lambda 演算减少
- java - 在 Maven 插件中使用属性文件中的变量