如何在函数内部调用函数?
模板: (HTML)
<a v-on:click="hello.world"></a>
JS: (作为组件)
methods: {
hello: function() {
return {
world: function() {
alert('hello world');
}
};
}
}
我收到了警告:
[Vue警告]:事件“click”的处理程序无效:未定义
可以通过JS 调用this.hello().world()
,但不能在模板中调用 (html),例如v-on
我缺少什么?
答案 0 :(得分:1)
我不认为这是一个vue问题。
this.hello().world()
无效,因为现在无法访问world()
。尝试在()
函数中添加双括号hello
:
methods: {
hello: function() {
return {
world: function() {
alert('hello world');
}
}();
}
}
现在您可以像这样访问内部函数:this.hello.world()
;
答案 1 :(得分:1)
应该以不同的方式使用它来使其正常工作
<a v-on:click="hello().world()">foo</a>
答案 2 :(得分:0)
只需将world定义为方法内部,全局或vue组件中的函数,并以常规方式调用它。
<a @click="hello">foo</a>
function world() {
alert("hello world");
}
<vue component> {
methods: {
hello: function() {
world();
}
}
}
或者
<vue component> {
methods: {
hello: function() {
this.world();
},
world: function() {
alert("Hello world");
}
}
}