我有这个清单:
<ul id="tab">
<li v-for="list in names">
{{ list.personName }}
</li>
</ul>
然后我有了这个vue对象:
var vm = new Vue ({
el: '#tab',
data: {
names: //an object array coming from the server
}
});
因此,“名称”数据将被更新并从服务器获得信息。但是,当名称被更新/更改时,它不会反映在客户端列表上。列表中显示的项目仅反映最初加载页面时存在的项目。
在Google Chrome浏览器的vue.js开发人员工具中,我始终可以看到更新的“名称”数据,但它并没有反映在DOM本身上。
EDIT1:“名称”中有什么:
names: Array[2]
0: Object
_id: "580aeafd017fbfb81a3a794d"
personName: "hi"
1: Object
_id: "580c4455ccc9e39c21f02434"
personName: "test"
编辑2
所以我正在使用node.js,并通过socket.io将数据实时从节点传输到客户端,如下所示:
socket.on('userDocument', function(userDocument) {
var vm= new Vue ({
el: '#tab',
data: {
names: //an object array coming from the server
}
});
});
如果它是作为对象从服务器传递过来的,则在与data()反应性绑定时,请确保使用Vue.set(obj,key,value)。
http://vuejs.org/api/#Vue-set