您可以使用 filterProperty 函数过滤 RecordArray:http ://emberjs.com/api/classes/Ember.Enumerable.html#method_filterProperty
尝试类似:
var filteredCategories = App.Category.find().filterProperty('nameLowerCase', filter);
在您的类别中,您将需要一个属性来运行过滤器
App.Category = Ember.Object.extend({
name: '',
nameLowerCase: function() {
return this.get('name').toLowerCase();
}.property('name')
});
假设您有一个 CategoriesRoute 将 Categories 控制器的模型设置为 App.Category.find() 那么您可以使用以下代码从您的模板访问过滤列表:
App.CategoriesController = Ember.Array.extend({
filtered: function() {
var filter = 'String value to compare lower case name to';
return this.get('model').filterProperty('nameLowerCase', filter);
}.property('model.@each.nameLowerCase')
});
然后在您的模板中,您可以使用:
{{#each filtered}}
//Your code here
{{/each}}
编辑 2013 年 6 月 6 日...请注意,现在在 App.Category.find() 上调用 filterProperty