我有一些清单,这些清单作为道具传递给组件。然后,我想创建一个映射到道具列表的计算列表。我的工作:
computed: {
assets: function(){
var self = this;
var mappedList = [];
if (self.sourceList && self.sourceList.length){
mappedList = _.map(self.sourceList, function(asset){
return { title: asset.title, id: asset.id};
});
}
return mappedList;
}
}
我可以看到映射后的列表,然后呈现出来:
<div v-for="asset in assets" :key="asset.id">
<span>{{asset.title}}</span>
<input v-model="source.title" />
</div>
我不知道为什么,但是当我更改标题时,因为正在编辑该项目,所以它没有改变。
(如果我尝试仅创建一个新列表并使用push方法向其中添加项目,则结果是相同的。)
找到UPD解决方案。正如@WW指出的,应该使用一些数据。我只是将列表移到数据上并观看道具就可以了。