Vue中ajax返回的结果赋值

这是第二次在项目中遇到此问题,ajax请求成功后在success函数中为Vue实例data里的变量赋值,却失败了

new Vue({ el:'#app', data:{ msg:'' }, created:function(){ $.ajax({ url:'', data:'', dataType:'json', success:function(res){ this.msg = res.data; } }) }})

原因在于在ajax的success函数中,this的指向不再是vue的实例
解决办法可以先把this保存起来

new Vue({ el:'#app', data:{ msg:'' }, created:function(){ var that = this; $.ajax({ url:'', data:'', dataType:'json', success:function(res){ that.msg = res.data; } }) }})

参考资料

Vue中ajax赋值问题

Vue中ajax返回的结果赋值

相关文章