我的Vue.js版本是v1.0.28。我想知道如何使用Vue.$set
來設置對象數組的深層屬性。例如,我有:
this.pairs = [
{
"left_media": {
"name": "A",
"show": false
},
"right_media": {
"name": "B",
"show": false
}
},
{
"left_media": {
"name": "B",
"show": false
},
"right_media": {
"name": "A",
"show": false
}
}
]
我需要遍歷this.pairs
陣列和更新每個媒體name == A
到true
的show
屬性。
我似乎可以通過for循環輕鬆更新它們,但視圖不會改變。我已經做了一些研究,似乎Vue.$set
可以幫助解決這個問題,但我似乎無法在這種情況下得到它的工作。
如何使用$set
來做:this.pairs[i].left_media.show = false;
?
編輯
AJAX調用更新show_comment
toggleComment: function(media, which_media) {
this.$http.post('/api/project-media/update.json', {
id: media.id,
show_comment: !media.show_comment
})
.then(function (response) {
if (response.body.success) {
// update show_comment status for this media in all pairs\
for (let pair of this.pairs) {
for (let key of Object.keys(pair)) {
if (key == 'project_media_left' || key == 'project_media_right') {
if (pair[key].id == media.id) {
this.$set(pair[key], 'show_comment', !media.show_comment);
}
}
}
}
}
}, function (response) {
});
}
你如何將項目添加到'pairs'? – Bert
啊,該數組是從數據庫中拉出:) – nogias
那麼,數據庫中的數據添加到配對的具體方式是什麼? – Bert