qq_37295337
qq_37295337
采纳率40%
2019-05-21 23:28 阅读 7.9k

vue 无法向data中的数组中push

5
new Vue({
    el: "#adminDiv",
    data: {
        admins: [],
        id: null,
        aname: null,
        pwd: null
    },
    created: function () {
    alert("loadList");
    $.get("admin/load").success(function (list) {
        alert(list.length);

        for(var i=0;i<list.length;i++){
            alert(list[i].aname);
            this.admins.push(list[i]);
        }

    })
},

list里面数据是正确的,但是无法push到data里的数组中,不知道是为什么求教
这里push会报错

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    qq_40021323 妖王令剑 2019-05-22 11:22

    请留意一下this的指向问题, 现在的 this 还是指向vue吗? 你在请求数据前 加一行 var that = this; 里面push的时候,就是 that.admins.push(list[i]);

    created: function () {
        alert("loadList");
            var that = this;
        $.get("admin/load").success(function (list) {
            alert(list.length);
            for(var i=0;i<list.length;i++){
                alert(list[i].aname);
                that.admins.push(list[i]);
            }
    
        })
    
    点赞 4 评论 复制链接分享
  • nicodeme nicodeme 2019-05-22 11:27

    再循环外
    let _this = this;
    _this.admins = list;
    console.log(_this.admins);

    点赞 1 评论 复制链接分享
  • dabocaiqq dabocaiqq 2019-05-22 09:03
    点赞 评论 复制链接分享
  • u011909918 有人把我昵称抢了 2019-05-22 10:20

    直接在循环外边用=不就好了,何必遍历一遍呢

    点赞 评论 复制链接分享

相关推荐