【发布时间】:2017-10-14 04:30:11
【问题描述】:
在下面的简单示例中,我在页面加载时在我的 vue 模型中调用我的云服务方法,其中包含一个内部服务特定的生命周期事件afterSubmitContacts(),它在用户执行某些事件时执行。一旦用户执行此事件,就会弹出警告框,并显示undefined 而不是myTest。
通过下面的示例,我的目标是成功访问 vue 模型方法和数据属性,而不是获得未定义。下面场景中访问vue模型数据和方法的正确方法是什么?
提前致谢!
new Vue({
el: '#vue-test',
data: {
name: 'myTest',
},
template: '<a href="#" class="button btn-lg btn-primary">Button</a>',
methods: {
initCloudService(event) {
cloudservice.init({
afterSubmitContacts: function (contacts) {
alert(this.name); //undefined
...
}
},
ready() {
this.initCloudService();
}
【问题讨论】:
-
您可以对
afterSubmitContacts使用箭头函数,例如afterSubmitContacts: contact => alert(this.name)或在该函数之外提供对this预期值的引用,然后通过该函数引用 Vue 实例,例如var self = this; afterSubmitContacts: function(contacts) { alert(self.name); }。如果您能够在项目中使用箭头函数,显然前者是首选。 -
感谢马蒂的帮助。您能否发布此评论作为答案?第二个建议就像一个魅力。我想让第一个建议也能正常工作,尽管我遇到了编译时错误。假设方法体不仅仅是一个警报和一个以上的参数,你能举一个简单的例子来说明箭头函数示例是如何工作的吗?谢谢
标签: javascript vue.js vuejs2