这是第二次在项目中遇到此问题,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返回的结果赋值
原文地址:https://www.cnblogs.com/Grani/p/10486969.html