问题见代码注释处
Vue.component("test", {
template: "#test",
data: function() {
return {
messages: ['sdddddd','ddddd','qwwq'],
newMessage: '11111'
}
},
methods: {
createMessage: function() {
var newMessage = this.newMessage;
if (newMessage) {
socket.emit('createMessage', newMessage);
this.newMessage = ''
}
},
messageListen: function() {
socket.emit('getAllMessages');
socket.on('allMessages', function(messages) {
//如何在这里把接收到的messages赋值给该组件的messages变量,下面的写法不可以,貌似是this作用域的问题
this.messages = messages;
});
socket.on('messageAdded', function(message) {
this.messages.push(message);
autosb();
});
}
},
ready: function() {
this.messageListen();
}
})
使用es6箭头函数,或者弄个 this 别名