use*_*325 3 javascript arrays vue.js
我通过AJAX读取了一个项目列表并将其推送到数据数组中:
loadSparepartFiles: function() {
var vm = this;
vm.activeSparepart.attachments = [];
ajaxApi.loadJson('spareparts/sparepart/getFiles/'+vm.activeSparepartId, function(data) {
for (var i = 0; i < data.files.length; i++) {
vm.activeSparepart.attachments.push({
filename: data.files[i]
});
}
});
},
Run Code Online (Sandbox Code Playgroud)
在Chrome中的Vue devTools中,我可以看到更新的数据数组,但DOM列表仍然是空的.
模板:
<div v-for="file in activeSparepart.attachments" class="uk-width-1-2 uk-margin-bottom">
<a href="{{ baseUrl }}/download/sparepart/{{ activeSparepartId }}/{{ file.filename }}" target="hidden-frame" class="block-link">
<i class="delete uk-icon-remove"></i>
<i class="icon uk-icon-image"></i>
<span class="title">
{{ file.filename }}
</span>
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
该activeSparepart对象在这里初始化:
resetSparepart: function() {
this.activeSparepart = {
alternates: [],
locations: [],
logs: [],
usages: [],
vendors: [],
sparepart: {},
attachments: []
};
this.activeSparepartId = 'new';
},
Run Code Online (Sandbox Code Playgroud)
Vue devTools显示以下内容:
我认为问题在于你activeSparepart.attachments不是被动的.阅读http://rc.vuejs.org/guide/reactivity.html#Change-Detection-Caveats.
如果activeSparepart是对象并且您添加了属性attachments,则无法识别附件...
Vue不允许向已创建的实例动态添加新的根级别响应属性.但是,可以使用Vue.set(object,key,value)方法将反应属性添加到嵌套对象:
Vue.set(vm.activeSparepart, 'attachments', [])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3687 次 |
| 最近记录: |