javascript - AngularJS ng-repeat 和切换过滤器开/关?

标签 javascript angularjs filter

我不知道如何编写这个过滤表达式。

我有一系列文档:

[{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:

Controller :(或者如果您希望直接在 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>

关于javascript - AngularJS ng-repeat 和切换过滤器开/关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200372/

相关文章:

javascript - 如何在xml2js xml的CDATA中添加html标签?

javascript - 使用复选框作为按钮来自动计算 jquery 中的总数?

json - 混合GSP和JSON View 时如何设置首选 View 分辨率

image - 如何仅使用 CSS3 更改图像颜色(图像有灰色阴影)?

javascript - 将数组传递给 Google Chart

javascript - 使用 Bit.ly API 仅使用 Javascript 来缩小 URL

angularjs - 比较 Angular 中的对象

javascript - Angular : Set conditional min and max value for validation in number input field

Excel:数据透视表不过滤

javascript - 如何使用另一个数组的内容过滤数组?