我正在尝试创建一个页面,其中显示了具有过滤功能的产品列表以及多种排序列表的方法。我想要通过调用过滤方法来启动每个排序方法,而不是重复每种排序的过滤代码。我目前可以按name
过滤:
filterText: '',
filteredResults: function() {
var filterText = this.get('filterText');
var regexp = new RegExp(filterText,'gi');
var causes = this.get('model.products').filter(function(name){
return name.get('name').match(regexp);
});
return causes;
}.property('filterText'),
但是我现在想在sort方法中使用这个函数。我尝试过使用Ember.computed.sort:
priceAscSorting: ['price'],
sortPriceAsc: Ember.computed.sort('filteredResults', 'priceAscSorting'),
但是如果我将它粘贴在模板中,它似乎将第一个输入视为null。如果我尝试在排序方法中调用filter方法:
priceAscSorting: ['views'],
sortPriceAsc: function() {
var products = filteredResults();
}
Ember抛出编译错误'filteredResults' is not defined
。如何访问我的过滤方法以在我的排序方法中使用?
答案 0 :(得分:0)
您的代码是正确的,它将使用filteredResults
计算属性并使用price
键以升序返回排序结果。
priceAscSorting: ['price'],
sortPriceAsc: Ember.computed.sort('filteredResults', 'priceAscSorting'),
但似乎它将第一个输入视为null,如果我把它粘在一个 模板
这意味着您需要检查filteredResults
计算属性