我想在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);
}
}
}
});
這隻能如果我開始與我的attendees: {}
data
但是當我加入與會者後嘗試attendees.length
,我收到undefined
。如果我使用attendees: []
,則新對象看起來不會被添加。最後,如果我使用.$set(data.userToken, data)
它不會添加所需的'token':{data..}
格式。
這裏有什麼問題?使用空對象數組開始時使用$.add
的正確方法是什麼?
UPDATE
我發現,它的工作原理,如果我設置attendees: {}
,然後添加一個新的對象時,如果
if (data.userToken in this.attendees) {
this.attendees.$set(data.userToken, data);
} else {
this.attendees.$add(data.userToken, data);
}
不知道有一種更好的方式來做到這一點。
'$ add'不再存在(v0.6.0) – MECU