[英]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.