我从API中提取数据,假设响应看起来像这样
users: [{id: 1, name: 'Daft Punk'}, ...]
我将它分配给vm:
this.users = users;
现在,我在列表中显示这些用户,并希望在特定用户上切换某些状态,例如" visible"或"启用"等
目前我这样做:
methods: {
enableUser: function (user) {
if (user.enabled === undefined) {
Vue.set(user, 'enabled', false);
}
user.enabled= !user.enabled;
}
}
我做了
if (user.enabled === undefined) {
Vue.set(user, 'enabled', false);
}
部分,因为API中的响应对象中没有enabled属性,我希望能够将该属性用于v-show和类似的东西。
是否有更好的方法来分配应该被动的属性?我不想为我想要使用的每个自定义属性编写该代码段。
答案 0 :(得分:1)
如果是我,我可能会forEach
对数据进行// get data from api, then...
users.forEach(user => user.enabled=true)
this.users = users;
并在设置视图模型之前分配其他属性:
ItemContainerStyle
这将使代码的其余部分更加清晰 - 无需检查属性是否已定义。
答案 1 :(得分:0)
所以,你想为所有对象添加一个反应属性? 最简单的方法是制作适配器功能 例如
//adapter function
function adaptToMyApp(externalObj)
{
//add extra properties as desired
externalObj.enabled = false;
}
// fill users from api.
// and adapt them to your app.
users.forEach(user => adaptToMyApp(user))
// now use users as required