ember.js:合并搜索和筛选
具有此控制器:ember.js:合并搜索和筛选,ember.js,Ember.js,具有此控制器: App.ProductsController = Ember.ArrayController.extend Ember.PaginationMixin, sortProperties: ["number"] 我想以这种(工作)方式添加“搜索”功能 问题是,当我应用搜索时,我丢失了以前定义的排序。我能做什么?来自官方文档 Ember.SortableMixin为 数组代理指定排序顺序,并在 添加、删除或更新对象而不更改 其基础内容数组的隐式顺序: Ember.Sortable
App.ProductsController = Ember.ArrayController.extend Ember.PaginationMixin,
sortProperties: ["number"]
我想以这种(工作)方式添加“搜索”功能
问题是,当我应用搜索时,我丢失了以前定义的排序。我能做什么?来自官方文档
Ember.SortableMixin
为
数组代理指定排序顺序,并在
添加、删除或更新对象而不更改
其基础内容数组的隐式顺序:
Ember.SortableMixin
只关心内容
数组,而我们确实得到了,在这里,您试图得到mixin没有的过滤内容
;我不在乎
因此,我建议您将内容
作为计算属性,它取决于所选搜索,如下所示
App.ProductsController = Ember.ArrayController.extend Ember.PaginationMixin,
sortProperties: ["number"]
search: ''
content: (->
search = @get("search")
@get('products').filter (item) ->
name = item.get("name").toLowerCase()
name.match(search.toLowerCase())
).property('submittedSearch')
在路由内setupController
将主列表设置为products
控制器的属性,而不是content
App.ProductsRoute = Ember.Route.extend
setupControllers: (controller, model) ->
controller.set('products'), App.Products.find()
现在,您的
内容将被过滤,并按“mixin”排序丢失了什么的顺序?您使用的是哪个版本的余烬?@Unspecified丢失了我的排序顺序。只有一个小问题:对submittedSearch
变量的任何更改都不会触发内容的重新计算。应用于另一个变量的代码不会触发。您对内容做了什么?我的意思是在UI上显示列表,或者你的用例是什么?我只是以通常的方式列出内容:{{{{each controller}}{{this.name}{{/each}}
你能想出一个JSFIDLE吗?,这样我就可以准确地看到出了什么问题,很难解释这个方法小提琴在咖啡脚本中,顺便问一下,你的问题解决了吗?
App.ProductsRoute = Ember.Route.extend
setupControllers: (controller, model) ->
controller.set('products'), App.Products.find()