如何从VUEJS中另一个方法内的方法访问属性? 在这个例子中,我需要一个" mb_id"来自fetchMA方法,以便在fetchMB args中使用它。
export default {
name: 'details',
data () {
return {
mA: {},
mB: ''
}
},
methods: {
fetchMA(id){
this.$http.get('apiurl/' + id )
.then(function(response){
this.mA = response.body;
});
},
fetchMB(id){
this.$http.get('apiurl/' + id )
.then(function(response){
this.mB = response.body;
});
}
},
created: function(){
this.fetchMA(this.$route.params.id);
this.fetchMB(this.mA.mb_id);
}
}
如果我在创建的内部硬编码,例如 - this.fetchMB(10);这取决于我需要的东西,但由于显而易见的原因,这是不可行的。
谢谢大家,
-S
答案 0 :(得分:2)
从fetchMA()
返回承诺,您可以在其上调用then()
,这样您就可以等到设置this.mA
。
fetchMA(id){
return this.$http.get('apiurl/' + id )
.then(function(response){
this.mA = response.body;
});
},
然后您可以在created
:
this.fetchMA(id)
.then(() => {
this.fetchMB(this.mA.mb_id);
})
你的例子中this.mA
是什么并不是很清楚。您将其声明为数组,但是像对象一样访问它。