2

我正在尝试编写我的第一个“真正的”ember 应用程序。我已经阅读了几个教程,现在我正在尝试将 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})'并删除不可见的东西,但我已经尝试过了,但没有任何显示。因此,我想知道我的整个应用程序设置方式是否存在缺陷,并且无法正常运行。

4

1 回答 1

3

您可以使用该filter功能代替findQuery

content: App.store.filter(App.Item, function (item) {
  return item.get('visible');
})

当基础数据发生变化时,将重新评估结果。不过,您仍然必须通过 find/findAll/findQuery 从服务器获取数据。

于 2012-08-06T09:55:58.730 回答