如果我有两个这样的计算属性,
computed: {
id: function(){ return this.$route.query.id; },
hasId: function(){ return this.$route.query.id !== undefined; }
}
如何使用id
计算hasId
这样的伪代码?
computed: {
id: function(){ return this.$route.query.id; },
hasId: function(){ return id !== undefined; }
}
答案 0 :(得分:12)
您需要使用正确的范围来访问vue计算属性。
因为您只使用itertools
,它将在全局范围内搜索它而找不到它并将返回undefined。要获得vue计算属性,您需要执行:id
,因此您的代码将如下所示:
this.id
在组件内部,computed: {
id: function () { return this.$route.query.id; },
hasId: function () { return this.id !== undefined; }
}
指的是我们的Vue instance。但是,您可以访问this
中的$ route和其他类似函数,因为它们是在this
定义的,请参阅以下vue-router中的代码:
Vue.prototype
答案 1 :(得分:0)
你的伪代码非常接近。只需将id
更改为this.id
computed: {
id: function(){ return this.$route.query.id; },
hasId: function(){ return this.id !== undefined; }
}
答案 2 :(得分:0)
我遇到了同样的问题,我只是使用观察程序解决了它。希望对您有所帮助:
<div id="app">
<label> true or false
<input v-model="checkbox" type="checkbox">
</label>
</div>
<script>
new Vue({
el: '#app',
data: {
checkbox: false,
},
computed: {
checkboxComputed(){
return this.checkbox;
},
lonelyComputed(){
console.log('who bothers?');
}
},
watch: {
checkboxComputed(value){
if(value){
console.log('checkboxComputed is changed!')
return this.lonelyComputed;
}
}
}
});
</script>