【发布时间】:2014-09-30 02:20:56
【问题描述】:
在我的项目中,我有一个表单,只有在填写某些字段时才能提交,所以我在我的 ViewModel 中创建了 canSubmit 函数:
var vm = new Vue({
data: {
experiments: [],
genes: ""
},
el: "html",
computed: {
canSubmit: function () {
switch (this.searchType) {
case "":
return false;
case "gene":
return this.genes.length > 0 && this.experiments.length > 0;
default:
return false;
}
}
}
});
我还有一个按钮,如果 canSubmit 返回 true,我想显示,还有一些 <inputs> 会更改数据模型:
<textarea v-model="genes" name="genes" id="gene_list"></textarea>
<select v-model="experiments" name="experiments" multiple id="select_result_exps">
<!--Various <options>-->
</select>
<button name="query" v-if="canSubmit" value="search" type="submit"">Submit</button>
所以当我更改 textarea 或 select 时,我的模型会更新,这意味着 canSubmit 返回 true。但是按钮不知道canSubmit 已更改,因此仍然不可见。
有没有办法观察派生的属性或方法以使其工作?或者我可以强制按钮重新检查其绑定吗?
【问题讨论】:
-
如果你设置一个简单的 jsfiddle.net 可能更容易解决问题
标签: javascript mvvm vue.js