AngularJS自定义过滤器可过滤项目类型

时间:2019-07-09 18:30:11

标签: angularjs

我正在尝试编写一个过滤器,以便它过滤我的项目类型。例如,HTML中会有一些下拉项目,例如richpoorvery poor / frontend ...,当我单击rich时,它应该在ng-repeat中过滤丰富的过滤器类型

在这里寻找我的物品

$scope.names = [
    {name:'Jani',country:'Norway', type: 'RICH'},
    {name:'Carl',country:'Sweden', type: 'POOR'},
    {name:'Margareth',country:'England', type: 'EXTREM POOR'},
    {name:'Hege',country:'Norway', type: 'RICH'},
    {name:'Joe',country:'Denmark', type: 'VERY POOR'},
    {name:'Gustav',country:'Sweden', type: 'VERY POOR'},
    {name:'Birgit',country:'Denmark', type: 'VERY RICH'},
    {name:'Mary',country:'England', type: 'RICH'},
    {name:'Kai',country:'Norway', type: 'POOR'}
    ];

我正在制作的过滤器:

app.filter('typeFilter', function() {
    return function(x) {

        return #;
    };
});

但是我没有做到……有人可以帮我制作出来吗?

1 个答案:

答案 0 :(得分:1)

您可以使用内置过滤器“ filter”:

在您的html中,使用此:

Enter your type here:
<input ng-model="type"/>
<div ng-repeat="item in names | filter: type">
  {{item.name}} - {{item.type}}
</div>

您可以进一步使用此过滤器,以供参考: https://docs.angularjs.org/api/ng/filter/filter

编辑#01

您还可以在过滤器中使用函数:

HTML

<div ng-repeat="item in names | filter: myFilter">
  {{item.name}} - {{item.type}}
</div>

JS

$scope.myFilter = function(item){
  if (item.type === something){
    return item;
  }
}

通过这种方式,您可以过滤多个属性等