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>