如何在vue.js中添加项目到列表

时间:2017-03-13 04:55:33

标签: javascript vue.js

我是vue.js的新手,这是我的问题:

data: {
        ws: null, 
        newMsg: '',
        username: null,    
        usersList: '' 
    },
        created: function() {
        var self = this;
        this.ws = new WebSocket('ws://' + window.location.host + '/room');
        this.ws.addEventListener('message', function(e) {
            var msg = JSON.parse(e.data);
                if (msg.Message == "joined" ) {
                self.usersList.push(msg.Name); // <--Problem here 
              }


        });
    },

但我在浏览器控制台中收到此错误:

Uncaught TypeError: self.usersList.push is not a function

我还试过一个固定的字符串而不是msg.Name但是得到了同样的错误。

这里有什么问题以及如何解决?

1 个答案:

答案 0 :(得分:2)

1.使用userList:[]作为数组,您可以使用push()方法,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

2.当您的e.data是数组时,如:[1,2,3,4],您可以使用concat组合两个数组。

var arr1 = [1,2,3,4];
var arr2 = [5,6,7];
var arr = arr1.concat(arr2); // [1, 2, 3, 4, 5, 6, 7]

或者,Array.prototype.push.apply(arr1, arr2);从第二个数组中推送所有元素。

var arr1 = [1,2,3,4];
var arr2 = [5,6,7];
Array.prototype.push.apply(arr1, arr2);
console.log(arr1);//[1, 2, 3, 4, 5, 6, 7]