如何在Vuejs / Javascript中将Object元素推送到数组

时间:2017-07-07 14:10:50

标签: javascript vue.js vuejs2

我正在尝试在VueJs中构建一个小应用程序, 以下是我的数据集:

data(){
    return {
        pusher: '',
        channel:'',
        notify: [],
        notifications: '',
        notificationsNumber: '',
    }
},

我在组件的created属性中有一个axios调用:

axios.get('api/notifications', {headers: getHeader()}).then(response => {
    if(response.status === 200)
    {
        this.notify = response.data.notifications
        this.notificationsNumber = this.notify.length
    }
}).catch(errors => {
    console.log(errors);
})

我已经实现了pusherJs,所以我有以下代码:

this.pusher = new Pusher('xxxxxxxx', {
    cluster: 'ap2',
    encrypted: true
});

var that = this
this.channel = this.pusher.subscribe('stellar_task');
this.channel.bind('company_info', function(data) {
    console.log(data.notification);
    that.notifications = data.notification
});

一旦从推送器获取值,我想将此推送到我的数组通知为watch属性,如下所示:

watch: {
    notifications(newValue) {
        this.notify.push(newValue)
        this.notificationsNumber = this.notificationsNumber + 1
    }
}

所以问题是我通过pusher接收的数据格式是对象形式,并且推送功能没有在这里实现:

截图:

Console log of pusher response

帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我假设response.data.notifications数组对象

所以你要做的就是:

this.notify = [...response.data.notifications];