我有以下User
课程:
class User {
String name;
bool registered;
User(this.name, [this.registered=false]);
}
在我的控制器中,我创建了users
,User
个对象的列表,其中一些对象的registered
值设置为true
。如何根据registered
属性进行过滤?这是我不完整的HTML:
<div ng-repeat="user in ctrl.users | filter: ????">
{{user.name}}
</div>
由于https://github.com/angular/angular.dart/issues/800,我无法使用谓词函数。有没有办法在过滤器中处理user
变量并执行布尔过滤器?像这样:
// NOT REAL CODE.
<div ng-repeat="user in ctrl.users | filter:user.registered">
{{user.name}}
</div>
答案 0 :(得分:1)
在这种特殊情况下,您希望使用&#34; FilterFilter&#34;,它允许您对列表中对象的属性进行文件管理。
<li ng-repeat="user in ctrl.users | filter:{registered: true}">{{user.name}}</li>
完整文档位于https://docs.angulardart.org/#angular/angular-filter.FilterFilter
其次,如果你需要一个更复杂的谓词,那么解决问题800的方法就是使你的谓词函数成为成员变量而不是控制器上的方法。
e.g。
@NgController()
class Controller {
Function pred = (x) => shouldXByDisplayed(x);
}
(但希望很快修复错误!)