我的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