【发布时间】:2020-03-29 10:37:31
【问题描述】:
当这些属性绑定到用 v-if 隐藏的 DOM 元素时,我需要一些帮助来销毁/取消设置 VueJS 中的某些数据属性。
我有一个真实的场景,但是,为了这篇文章的目的,我将坚持一个简单的例子。
在我的 HTML 中,我有以下内容:
<html><body>
<div id="app">
<select v-model="myFields.SelectedValue">
<option disabled value="">Choose a Programming language</option>
<option>PHP</option>
<option>Python</option>
<option>C#</option>
</select>
<input v-if="myFields.SelectedValue == 'PHP'" type="text" label="Your favorite version of PHP" v-model="myFields.favPHP">
<br>
<pre>
{{myFields}}
</pre>
</div>
</body>
</html>
在 JavaScript 上,我得到了这个:
new Vue({
el: "#app",
data: {
myFields:{
SelectedValue: ''
}
}
})
当我在选择字段中选择“PHP”选项时,VueJS 会按预期呈现输入字段。然后我可以输入任何内容,该值将绑定到属性myFields.favPHP。
问题是:如果我决定在选择字段中更改我的选项,例如“Python”,文本输入字段将被删除,因为它必须是,但 myFields.favPHP 没有取消设置。
我不认为有实现这一点的本地方法,我不知道我能做些什么来解决这个问题。
这是一个有效的小提琴:https://jsfiddle.net/bneeer/5jumo3aq/1/
有人吗?
【问题讨论】:
标签: javascript html vue.js data-binding