我正在使用websockets将记录推送到我的商店。
我通过把手模板在屏幕上显示项目
{{#each item in items}}
<div>{{item.name}}</div>
{{/each}}
在我的控制器中,我有物品集合
items : function() {
var items = this.store.find('items');
return items.filterBy({type : "NEW"});
}.property()
现在,当新记录添加到商店时,我需要自动更新商品。
items : function() {
var items = this.store.find('items');
return items.filterBy({type : "NEW"});
}.property('??????')
当通过计算属性添加记录时,有一些方法可以监听商店。理想情况下,我想听听特定类型的模型。
答案 0 :(得分:2)
执行此操作的最佳方法是:
items : function() {
return this.store.filter(function(item){
return item.get('TYPE') === 'NEW';
});
}.property()
store.filter
返回一个实时数组,只要存储中有任何更改,它就会更新,因此它将响应所推送的新记录。
答案 1 :(得分:0)
我假设您正在使用阵列控制器。您只需要观察内容数组,如content.[]
。所以你的控制器代码看起来应该是
App.IndexController = Em.ArrayController.extend({
filteredContent: function() {
return this.get('model').filterBy('type', 0);
}.property('model.[]')
});
并使用模板中的filteredContent
{{#each filteredContent}}
<li>{{title}} - {{songCount}}</li>
{{/each}}