Javascript 使用过滤器更新ng repeat

Javascript 使用过滤器更新ng repeat,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我有一些我正在使用的角度代码,希望很快能进行重构。 我正在尝试根据复选框筛选一个ng repeat 我有一个数据树,看起来像这样 { name: 'mail', rating: 2.4, source: 'EDD', users: 1000, description: '' } 将ng repeat工作设置为在 <li ng-repeat="rule in property">{{rule[entityPropertyName]}</l

我有一些我正在使用的角度代码,希望很快能进行重构。
我正在尝试根据复选框筛选一个
ng repeat

我有一个数据树,看起来像这样

{
    name: 'mail',
    rating: 2.4,
    source: 'EDD',
    users: 1000,
    description: ''
}
ng repeat
工作设置为在

<li ng-repeat="rule in property">{{rule[entityPropertyName]}</li>
我正在通过控制器中的一个简单函数过滤复选框

$scope.filterAdded = function(sourceName) {
    if($scope.filteredQualifiers.sourceName[sourceName]) {
        return sourceName;
    }
}  // returns source name 
返回源名称,例如:媒体,或年龄

我希望我能补充一点

$scope.filterAdded 
ng重复
迭代器,如下所示

<li ng-repeat="rule in property | filter: filterAdded">{{rule[entityPropertyName]}</li>
将filterAdded视为一个函数

添加过滤器后,返回单个值,如EDD

我发现我需要过滤规则源

source: 'EDD'
没有看到可以比较getrule.source和filterAdded值的方法

<li ng-repeat="rule in property | filter: filterAdded"></li> 

  • 如有任何见解或反馈,我们将不胜感激

    我喜欢Angular 4,所以我将使用这种语言,但您可以适应Angular js(1.x)

    如果我做对了,我会使用ngFor或ngRepeat来代替管道

    <ul *ngFor=" let rule in property">
    
    
    
    *请注意,ngFor将用于ul,而不是li

    然后,在li标签上,我会使用ngIf检查它是否在某个过滤器下。在ngIf上,您可以绑定到函数,甚至可以传递正在迭代的对象或数组项的属性,如:

    <li *ngIf="isThisOnFilter(rule['rating'])">{{ rule['name'] }}</li>
    
    {{rule['name']}
    
    希望能有帮助

    <li ng-repeat="rule in property | filter: filterAdded"></li> 
    
    <ul *ngFor=" let rule in property">
    
    <li *ngIf="isThisOnFilter(rule['rating'])">{{ rule['name'] }}</li>