2014-11-21 43 views
0

根據angularjs文檔,您應該能夠將一個對象傳遞給過濾器方法。您可以指定要在使用對象時過濾的列,也可以使用「特殊$」字符並且它應該搜索所有屬性。當我指定要過濾的列名時,過濾器工作的很好,但是當我嘗試使用$過濾所有列時,它不起作用。我不確定我是否正確使用它。任何人都知道如何解決這個問題?

 var filterObject = { $ : 'Jeff'}; 
     $scope.myFilteredData = $filter('filter')($scope.myRawData, filterObject);  
+0

發現它在你的myRawData什麼?它必須是具有可以過濾的屬性的對象數組。 – 2014-11-21 03:28:22

回答

0

角過濾器需要的陣列和一些類型的工作的一個過濾器對象。你可以在https://docs.angularjs.org/api/ng/filter/filter找到更多。默認情況下,$ filter('filter')調用將返回內置的通用/簡單過濾器。你的第一個參數需要是具有屬性的對象數組。你的第二個參數可以是你演示的一個對象。

var app = angular.module('app', []); 

app.controller('ExampleCtrl', 
function ($scope, $filter) { 
     var x = [{name : 'Tim'}, {'name' : 'Jim'}, {'name' : 'Jeff'}]; 

     console.log($filter('filter')(x, {$ : 'Jeff'})); 
}); 

http://jsfiddle.net/wg6mp56y/1/

+0

原來這是有效的......這是我將結果傳遞給對象的問題。很高興看到這個示例,因爲沒有很多Web資源引用基於$的對象過濾。 – silvster27 2014-11-21 16:52:00

+0

甜蜜很高興它的工作原理。順便說一句,用這種方式使用過濾器並不是真正的慣用,但我相信你知道.. – 2014-11-22 02:10:47