javascript - AngularJS 中的多条件过滤器

标签 javascript angularjs

我有一个 ng-repeat 列表,显示对象的集合。 我已经实现了一个过滤器,使列表仅显示今天插入的对象。它看起来像这样:

<div class="row msf-row" 
     ng-repeat="record in recordlist | filter: record.date = dateJson">

这太棒了。我的问题是,我想显示今天记录的两个对象,以及没有属性到达的记录(因为它们可能是昨天引入的,但需要将它们标记为到达)。

我已经尝试过了,但直到今天 00:00 才知道它是否正确。

<div class="row msf-row" 
     ng-repeat="record in recordlist | 
                filter: record.date = dateJson ||  
                        record.date != dateJson && !record.arrival">

这有意义吗?

最佳答案

当标记中的表达式开始变得过度紧张时,就该重构了。您应该在 Controller 中定义一个函数来执行您想要的检查:

$scope.shouldShow = function(record) {
    return record.date == dateJson ||
           (recode.date != dateJson && !record.arrival);
}

(注意:这个条件是多余的;您可以将其缩短为):

    return record.date == dateJson || !record.arrival;

然后在过滤器中使用它:

<div class="row msf-row" ng-repeat="record in recordlist | filter:shouldShow">

这将允许您更新逻辑而无需编辑 View 。

关于javascript - AngularJS 中的多条件过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27676083/

相关文章:

javascript - 如何在 Javascript 中对 Array map() 函数输出进行排序

javascript - jsTree 3 - 选择动态加载树的下一个/上一个节点

javascript - 如何调用异步函数以在全局范围内使用 return

javascript - 获取通用数组时对表进行 ng-repeat

javascript - RxJS 主题从未推送过第一个下一个

javascript - 谷歌应用脚​​本: Copy cell value to another sheet with condition to copy and position the value

javascript - 管理来自 java spring 方法的 http.get 响应

angularjs - 使用 ng-Style 更改背景颜色

html - 根据高度排列列

javascript - 设置angularJS选择默认值