我正在尝试编写我的第一个“真正的”余烬应用程序。我已经完成了几个教程,现在我正在尝试将ember与Ember Data结合使用,从Rails应用程序中获取数据并显示它。
我已经得到它来获取数据,解析它并显示它,虽然我不相信它是以最好的方式。我有App.itemsController
与此类似:
App.itemsController = Em.ArrayController.create({
content: App.store.findQuery(App.Item, {visible: true}),
});
我还有一个App.ItemIndexView
,其模板看起来像
{{#each App.itemsController}}
{{id}}{{view App.ItemView item=this}}
{{/each}}
我对此有几个问题。
首先,我想允许用户将项目可见性更改为false。我在App.ItemView
文件中有这段代码:
acknowledge: function() {
this.item.set('visible', false);
App.store.commit();
}
记录得到更新,但我希望整个项目从视图中删除而不是。如何从App.itemsController.content
删除此记录?
我的第二个问题,实际上也可以回答第一个问题,就我的实施情况而言,我是否完全脱离了这个问题?我觉得应该有一种方法让我设置像contentBinding: 'App.store.findQuery(App.Item, {visible: true})'
这样的东西,并删除不可见的东西,但我已经尝试过了,没有任何东西出现。所以我想知道我的整个应用程序设置方式是否存在缺陷,以防止事情变得不好。
答案 0 :(得分:3)
您可以使用filter
功能代替findQuery
:
content: App.store.filter(App.Item, function (item) {
return item.get('visible');
})
当基础数据发生变化时,将重新评估结果。您仍然必须通过find / findAll / findQuery从服务器获取数据。