Vue.js 如何从手表调用函数?
生成错误:Vue.js 如何从手表调用函数?,vue.js,Vue.js,生成错误:ReferenceError:foo未定义 我还看了一些例子: 这根绳子是干什么的 handler:function(val,oldVal){/*…*/}, handler它是关键字吗?或者它可以是函数 如果您想使用watch观察您的属性,可以使用this.foo调用您的方法: data: function () { return { questions: [] } }, watch: { questions : function(val, o
ReferenceError:foo未定义
我还看了一些例子:
这根绳子是干什么的
handler:function(val,oldVal){/*…*/},
handler
它是关键字吗?或者它可以是函数 如果您想使用watch观察您的属性,可以使用this.foo调用您的方法:
data: function () {
return {
questions: []
}
},
watch: {
questions : function(val, oldVal) {
foo()
}
},
methods: {
foo() {
console.log("foo called");
}
}
回答有关处理程序的问题:它是一个关键字属性,可以采用函数表达式(如示例中所示)或函数引用,例如:
data: function () {
return {
questions: []
}
},
watch: {
questions: {
handler: function(val, oldVal) {
this.foo(); // call it in the context of your component object
},
deep: true
}
},
methods: {
foo() {
console.log("foo called");
}
}
出于好奇:你是否需要观察一处房产,以便在它每次发生变化时都能做些什么,或者也能解决你的问题?只需添加@nils的答案即可
function myHandler() { ... } // Defined somewhere outside of the vue component object
...
handler: myHandler,
...
如果函数foo在方法中,也可以使用
略短于
handler: 'foo'
我是否正确理解每次数据更改foo
都会调用?我需要检查我的数据,以更改每个用户点击复选框。那么手表对我来说够了吗?现在我用v-model=“firstLevelAnswer.isSelected”
更改question
结构的值。现在,当我点击复选框时,在控制台上看不到任何变化。我希望每次数据发生变化时都会调用foo。什么是firstLevelAnswer
?使用您的代码,您只需关注问题的更改。watch
对象中的键的名称是您将要查看的属性。以下是我的问题:这里是我项目的主要部分:在这种情况下,您可能更容易在dom:vuejs.org/guide/events.htmlNothing中收听有关您的问题的输入事件。它只是需要更多的努力,让手表做你想做的事情(也是性能方面的)。非常干净。注意:当对Vuex状态变量使用此方法时,例如'$store.state.questions':'foo'
传递(value,oldValue)参数,因此foo()变为foo(value,oldValue){}
。
handler() {
this.foo()
}