qq_37295337
2019-05-21 23:28
采纳率: 40%
浏览 8.8k
已采纳

vue 无法向data中的数组中push

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条回答 默认 最新

  • 妖王令剑 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]);
            }
    
        })
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • nicodeme 2019-05-22 11:27

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

    评论
    解决 1 无用
    打赏 举报
  • dabocaiqq 2019-05-22 09:03
    评论
    解决 无用
    打赏 举报
  • 有人把我昵称抢了 2019-05-22 10:20

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题