2016-12-08 10 views
0

フィルターをかけた製品のリストとリストをソートする複数の方法を示すページを作成しようとしています。ソートごとにフィルタリングコードを繰り返すのではなく、フィルタリングメソッドを呼び出すことで各ソートメソッドを開始したかったのです。私は現在、nameによってフィルタリングすることができます:Ember - 他のコントローラー機能でコントローラー機能を使用する

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'), 

は、しかし、私は今のソート方法でこの機能を使用します。

priceAscSorting: ['price'], 
sortPriceAsc: Ember.computed.sort('filteredResults', 'priceAscSorting'), 

が、私はテンプレートでそれを固執するならば、それはNULLとして最初の入力を扱うように思える:私はEmber.computed.sortを使用してみました。私は、ソートメソッド内のフィルタメソッドを呼び出ししようとした場合:

priceAscSorting: ['views'], 
sortPriceAsc: function() { 
    var products = filteredResults(); 
} 

エンバーは'filteredResults' is not definedを言っコンパイラエラーがスローされます。ソート方法で使用するフィルタメソッドにアクセスするにはどうすればよいですか?

答えて

0

あなたのコードは正しいです、それはキーを使用して昇順で並べ替えられた結果を返しますfilteredResultsを返します。

priceAscSorting: ['price'], 
sortPriceAsc: Ember.computed.sort('filteredResults', 'priceAscSorting'), 

が、私はあなたがfilteredResults計算プロパティ

をチェックする必要があることを意味 テンプレート

でそれを固執するならば、それがnullとして最初の入力を扱うように思えます

関連する問題