【发布时间】:2017-11-08 11:22:24
【问题描述】:
我正在尝试将 Vue 函数传递给 lodash 节流方法。我不应该只是能够做这样的事情吗?
当我尝试这样做时,我收到以下错误:
观察者“查询”的回调错误:“TypeError:需要一个函数”
观察者
watch: {
query() {
throttle(this.autocomplete(), 400);
}
}
方法
methods: {
autocomplete() {}
}
即使我传递了一个函数引用,我仍然收到一条错误消息。如果我用匿名函数包装它,它不会触发:
throttle(() => { this.autocomplete(); }, 400);
我刚刚检查过,autocomplete 函数似乎确实会触发,无论在我的顶部示例中它不是函数的错误如何。
这里出了什么问题?
编辑:
Jsfiddle:http://jsfiddle.net/yMv7y/2780/
【问题讨论】:
-
正如@str 所说,
this.autocomplete将返回undefined。要获得参考,您可以使用this.$options.methods.autocomplete。不确定它是否推荐。但即使这样做了,它也没有调用autocomplete方法。即使通过了一个函数,节流阀也不起作用。参见示例here。小提琴中还有其他解决方案。
标签: javascript vue.js lodash vuejs2