【发布时间】:2017-02-09 05:10:31
【问题描述】:
我通过 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]
});
}
});
},
在 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>
activeSparepart 对象在这里初始化:
resetSparepart: function() {
this.activeSparepart = {
alternates: [],
locations: [],
logs: [],
usages: [],
vendors: [],
sparepart: {},
attachments: []
};
this.activeSparepartId = 'new';
},
Vue devTools 显示如下:
【问题讨论】:
-
提供 jsFiddle 因为不可能知道你在模板中做什么
-
我将模板添加到问题中。
-
你的
activeSparepart是如何在组件中定义的? -
我在 vue ready 上调用了 resetSparepart 方法
-
我不明白的一点是,vue devtools 在 activeSparepart.attachments 中显示正确的内容
标签: javascript arrays vue.js