2014-04-03 129 views
1

我正在測試$ filter過濾功能,我沒有使用過它,有人可以告訴問題是什麼,爲什麼過濾這些對象。使用過濾器來過濾angularjs中的對象

這裏是jsfiddle

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

function ctrl($scope, $filter) { 
    $scope.images = [{ 
     orgName: 'B', 
     sortOrder: 111 
    }, { 
     orgName: 'A', 
     sortOrder: 12 
    }, { 
     orgName: 'D', 
     sortOrder: 13 
    }, { 
     orgName: 'C', 
     sortOrder: 14 
    }]; 

    $scope.filter = function() { 
     $scope.images = $filter('filter')($scope.images, 'orgName'); 
    } 
} 
+0

你究竟想要做什麼?按「orgName」排序? – Cherniv

+0

不可以過濾它們,如果點擊A它應該只返回A等等 – Erick

+0

像這樣:http://jsfiddle.net/M8nDQ/38/? – Cherniv

回答

0

jsFiddle

我也改變了HTML的鏈接現在是(通過ORGNAME作爲參數):

<a href="" ng-click="filter(image.orgName)">{{image.orgName}}</a> 

現在的過濾器得到orgname作爲參數並且具有用於比較的功能:

var app = angular.module('myApp', []); 
function ctrl($scope, $filter) { 
    $scope.images = [{ 
     orgName: 'B', 
     sortOrder: 111 
    }, { 
     orgName: 'A', 
     sortOrder: 12 
    }, { 
     orgName: 'D', 
     sortOrder: 13 
    }, { 
     orgName: 'C', 
     sortOrder: 14 
    }]; 

    $scope.filter = function (orgName) { 
     $scope.images = $filter('filter')($scope.images, {'orgName': orgName}); 
    } 
} 

你可能想要考慮有兩個列表的列表,或者一旦你過濾掉了所有其他元素永遠。例如,像displayImages,allImages這樣的東西。

另外jsFiddle有兩個列表,正如我上面所說的那樣,重置。

+0

是的,我知道我寬鬆的信息。如果我使用select,並且不選擇過濾值,它應該將過濾器重置爲默認值,以便顯示所有值,我應該添加什麼? – Erick

+0

這個小提琴有一個重置功能:http://jsfiddle.net/M8nDQ/52/ –