[英]AngularJS ng-repeat and toggle filter on/off?
我不知道如何编写此过滤器表达式。
我有一系列文件:
[{title: 'doc1', read: false}
{title: 'doc2', read: false}
{title: 'doc3', read: false}
{title: 'doc4', read: true}
{title: 'doc5', read: false}]
我认为
<input type="checkbox" ng-model="filterRead">
<div ng-repeat="doc in documents track by $index | filter: ??? ">
{{doc.title}}
</div>
如果checkbox / filterRead为true,则不分配任何过滤器并显示所有文档。 如果复选框为false,则仅在doc.read = false的地方显示文档。 我不知道如何优雅地编写此过滤器表达式。
根据您的逻辑,您不需要过滤器,可以使用ng-if:
控制器:(或者如果您想直接在HTML中使用逻辑)
$scope.showDoc = function () {
return $scope.filterRead || !doc.read;
}
和HTML:
<div ng-repeat="doc in documents track by $index" ng-if="showDoc()">
{{doc.title}}
</div>
只能在模板中执行此操作。 这是一个例子:
<input type="checkbox" ng-model="filterRead.read" ng-true-value="false" ng-false-value="'!null'">
<div ng-repeat="doc in documents | filter:filterRead track by $index ">
{{doc.title}}
</div>
ngFalseValue
指令在这里ngFalseValue
了作用。 当复选框未选择模型filterRead.read
设置为一些东西,不等于这两个read
真或假。 因此,所有记录均被呈现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.