zoukankan      html  css  js  c++  java
  • 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实例赋值给变量,再通过变量来访问其数据,实例化后window里会有vm实例对象,底层会把data里的属性挂载到vm实例对象上作为vm的属性

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

    参考资料

    Vue中ajax赋值问题

  • 相关阅读:
    Django学习2
    Django学习1
    python 基于tcp协议的文件传输3_解决粘包问题
    python socketserver
    python hashlib
    python struct模块
    python json 模块
    python socket模块
    13暑假集训#10 总结
    hdu 4493 卡输入输出
  • 原文地址:https://www.cnblogs.com/Grani/p/10486969.html
Copyright © 2011-2022 走看看