使用过滤器过滤angularjs中的对象

时间:2014-04-03 13:25:17

标签: angularjs

我正在测试$ filter功能,我还没有使用过它,有人能说出问题是什么,为什么它会过滤掉对象。

这是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');
    }
}

1 个答案:

答案 0 :(得分: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有两个列表,正如我上面说的那样重置。