【发布时间】:2015-09-01 19:14:29
【问题描述】:
我正在尝试在 VueJS 中构建一个对象数组,但遇到了 .$set 和 .$add 的一些问题。
例如,我在添加新项目/对象时需要以下结构:
{
"attendees": {
"a32iaaidASDI": {
"name": "Jane Doe",
"userToken": "a32iaaidASDI",
"agencies": [
{
"name": "Foo Co"
}
]
}
}
}
添加新对象以响应 AJAX 调用,该调用返回格式与上述相同的 JSON。这是我的 Vue 实例:
var vm = new Vue({
el: '#trainingContainer',
data: {
attending: false,
attendees: {}
},
methods: {
setParticipantAttending: function(data)
{
if (data.attending)
{
this.attendees.$add(data.userToken, data);
} else {
this.attendees.$delete(data.userToken);
}
}
}
});
这仅适用于我在data 中以attendees: {} 开头,但是当我在添加与会者后尝试attendees.length 时,我收到undefined。如果我使用attendees: [],则似乎没有添加新对象。最后,如果我使用.$set(data.userToken, data),它不会添加所需的'token':{data..} 格式。
这可能是什么问题?从空对象数组开始时,使用$.add 的正确方法是什么?
更新
我发现如果我设置 attendees: {} 然后在添加新对象时,它会起作用
if (data.userToken in this.attendees) {
this.attendees.$set(data.userToken, data);
} else {
this.attendees.$add(data.userToken, data);
}
不确定是否有更好的方法来实现这一点。
【问题讨论】:
-
$add不再存在 (v0.6.0)