在VUE JS中访问另一个方法内的方法属性

时间:2017-11-03 16:23:04

标签: api methods vue.js

如何从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

1 个答案:

答案 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是什么并不是很清楚。您将其声明为数组,但是像对象一样访问它。