angular.js - angular里的filter过滤数据传参问题

浏览:24日期:2022-12-28

问题描述

控制器:$scope.dataList=[

{'dataClass':'0','dataName':'A1'},{'dataClass':'0','dataName':'A2'},{'dataClass':'1','dataName':'B1'},{'dataClass':'1','dataName':'B2'},{'dataClass':'2','dataName':'C1'},{'dataClass':'2','dataName':'C2'}

]HTML模板:<li ng-repeat='item in dataList |filter :{’dataClass’:’0’}'>{{item.dataName}}</li>页面展示将循环过滤出dataList数组中dataClass为’0’的A1,A2;现在的需求是dataClass过滤的值是一个变量设为varity,而ng-repeat='item in dataList |filter :{’dataClass’:varity}',又不生效,请问如何实现该需求

问题解答

回答1:

帮你写了个过滤器,把指定的dataClass去掉了:

angular.module(’common’, []).filter(’myFilter’, function () {return function (collection, keyname,value) { var output = []; angular.forEach(collection, function (item) {//过滤数组中值与指定值相同的元素if(item[keyname]!=value){ output.push(item);} }); return output;} });

<p ng-app='myApp' ng-controller='myCtrl'> <p ng-repeat='x in items | myFilter: ’dataClass’: dcValue '>{{x.dataClass}}---{{x.dataName}} </p></p>

过滤器接收3个参数,原数组,要过滤的key,以及指定的key值。

回答2:

repeat='item in dataList |filter :{’dataClass’:{{varity}} }'

加花括号就可以了

相关文章: