Vue axios promise范围不绑定到当前组件

时间:2017-01-20 00:54:45

标签: vue.js axios

如何绑定方法对象中的函数。我相信如果我使用箭头功能,它应该与当前对象自动绑定。但是,它有自己的scrope。因此,我无法在http get请求后更新数据变量。

这是我的客户组件。

(1048576,[489554,540177,736740,894973],[0.28768207245178085,0.0,0.0,0.0])
(1048576,[455491,540177,736740,894973],[0.6931471805599453,0.0,0.0,0.0])
(1048576,[489554,540177,560488,736740,894973],[0.28768207245178085,0.0,0.6931471805599453,0.0,0.0])

这是console.log(this)的结果..

result of console.log(this) 这是我的app.js文件

 import axios from 'axios';

  export default {
    data () {
      return {
        customers: 'temp ',
        loading: 'false',
        error: null,
      }
    },
    created () {
      console.log(this)//this is fine 
      this.getCustomerList()
    },
    watch: {
      '$route': 'getCustomerList'
    },

    methods: {
      getCustomerList: () => {
        console.log(this)
        axios.get('/api/customers')
        .then((res)=>{
          if(res.status === 200){
          }
        })
      }
    }
  }

1 个答案:

答案 0 :(得分:2)

请尝试以下操作:

methods: {
  getCustomerList () {
    console.log(this)
    var that = this
    axios.get('/api/customers')
    .then((res)=>{
      if(res.status === 200){
          //use that here instead of this
      }
    })
  }
}