我可以使用 Ember.js(rc0) 和 Rails,并有一个简单的应用程序按我的预期工作,但我想专注于一个特定的故事:
作为用户,我想在表单中输入“过滤器”文本,然后让我的 ArrayController 只显示那些与过滤器匹配的项目。例如,考虑一个联系人应用程序,该应用程序显示名称为“Ya%”的人......
警告:假设数据库拥有数千条联系人记录。我不想在客户端过滤这些联系人,在服务器上这样做更有意义。
问题:如何在 ember.js/ember-data 中执行此操作?在服务器上,我可以轻松地允许在我的索引 URL 中使用搜索参数来过滤数据,因此它是一个易于管理的列表,甚至可以将响应限制为 20 个项目。
我也可以使用视图来访问我的控制器中的过滤器文本,但接下来我该去哪里呢?如何将该过滤器传递到服务器上?
更新:
我能够在模型对象上使用“查找”,并且 ember(ember 数据)去服务器获取新数据——因为客户端只有所有联系人记录的一个子集。它没有过滤客户端上的内容,而是自动推迟到服务器......这很好。
App.ContactIndexController = Ember.ArrayController.extend
search_term: null
submit: (view) ->
this.set('content', App.Contact.find({search: "#{view.search_term}"}))