【发布时间】:2015-07-08 23:19:35
【问题描述】:
使用 Ember,我的控制器中有一个如下所示的对象:
ItemDetails: {
Retrieved: '2016-07-09',
User: 'someuser',
Items: [
{
Name: 'Item',
Price: 'value'
},
// snip
]
}
这是在控制器初始化中使用this.set('ItemDetails', jsonObject) 设置的。
模板呈现为
{{#each ItemDetails.Items as |Item|}}
{{Item.Name}}
{{Item.Price}}
<input type="button" {{action "Remove" Item.Name }} value="Remove" class="btn btn-primary" />
{{/each}}
Remove 的动作是这样定义的:
Remove: function(itemName) {
var details = this.get('ItemDetails');
var index = -1;
for(var i = 0; i < details.Facets.length; i++) {
if(details.Items[i].Name == itemName) {
index = i;
break;
}
}
if(index > -1) {
details.Items.splice(index, 1)
this.set('Search', details);
}
}
现在使用 Chrome 调试器,我可以确认数组是正确的,并且正在删除正确的项目。随后的调用也会在内部显示数组的外观。
但是,模板并未反映此更改,即项目仍与其删除按钮一起显示。模板没有更新,我做错了什么?
【问题讨论】:
标签: ember.js