在ng-repeat内过滤angularjs

时间:2015-02-26 08:18:24

标签: javascript angularjs filtering

我试图在ngRepeat内部进行过滤,并且我使用filter的所有过滤器始终出现相同的错误,这里我把代码和错误放在:

HTML:

<input type="text" ng-model="searchOd.name"/>
<li ng-repeat="od in opdata[odTag] | filter:searchOd as odFiltered">

错误:

TypeError: boolean is not a function
at angular.min.js:16709
at $parseFilter (angular.min.js:12155)
at Object.regularInterceptedExpression (angular.min.js:12851)
at Scope.$get.Scope.$digest (angular.min.js:14235)
at Scope.$get.Scope.$apply (angular.min.js:14506)
at done (angular.min.js:9659)
at completeRequest (angular.min.js:9849)
at XMLHttpRequest.requestLoaded (angular.min.js:9790)

我尝试使用{{opdata [odTag] |导出opdata [odTag] json}}并且放入一个plunkr但是在plunkr它工作!我做错了什么?

这就是我现在没有filter

的方式
.filter('byDistrict', function() {
    return function(items, id_district) {
        var filtered = [];
        if(!id_district) return items;
        angular.forEach(items, function(item) {
            if(item.id_district == id_district) filtered.push(item);
        });
        return filtered;
    }
})

提前致谢!

修改

正如在plunkr中说的那样它可以工作,但我放在这里:plunkr

1 个答案:

答案 0 :(得分:0)

您的代码没有错。但是您使用的是Angular 1.2.x,其中“as results”功能是Angular 1.3 +

的一部分