我想将我的一些Vue.js方法组合在一个“子方法”类中,但是我似乎只能使用单级方法.
例如,如果我想拥有一组完全处理按钮动作的方法:
new Vue({
el: '#app',
data: { },
methods: {
buttonHandlers: {
handler1: function() {
dosomething;
},
handler2: function() {
dosomething;
}
}
}
});
我希望能够再使用类似的东西:
<button v-on:click="buttonHandlers.handler1">Click Me</button>
但是什么也没发生.
我试图通过添加方括号来强制功能运行:
<button v-on:click="buttonHandlers.handler1()">Click Me</button>
但我收到此控制台错误:
未捕获的TypeError:scope.buttonHandlers.handler1不是函数
我设置了一个小的https://jsfiddle.net/ozx9oc4c/来演示我的意思.
如果有人知道在Vue.js的父方法下对函数进行逻辑分组的方法,而不是没有真正结构的单层方法的页面和页面,我将不胜感激.
解决方法:
我要做的最接近的事情是将父级声明为一个函数,并返回带有一组方法的对象.
例:
new Vue({
el: '#app',
data: {},
methods: {
buttonHandlers: function() {
var self = this; // so you can access the Vue instance below.
return {
handler1: function() {
dosomething;
self.doSomething();
},
handler2: function() {
dosomething;
},
},
}
}
});
您可以调用如下方法:
<button @click="buttonHandlers().handler1()">Click Me</button>