angular中的filter

一般情况下,单独过滤某个值的时候的用法是:

$filter('filter')(tabsArray3, {'typeid': '39'})

这里我有个数组,typeids = ['20','10','40'] ,此时如何过滤数组中的typeid?

阅读 2.9k
3 个回答

原生的filter的第二个参数是可以传function的,签名为function(val, idx, arr),你过滤的逻辑应该大概是

function(val, idx, arr){
    // typeids 通过闭包来传值
    return typeids.indexOf(val) < 0
}

详见这里

试试这个:

$scope.data =  ['20','10','40','11','12','13','14','15','16','17','18','19','20'];
let typeids = ['20','10','40'];

$scope.filterNums = (val)=>{
    return typeids.indexOf(val) === -1;
}


HTML:
<div ng-repeat="item in data | filter: filterNums"> {{item}} </div>

原生数组filter不就可以了?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进