【问题标题】:Searching through JSON Object with ng-class (AngularJS)使用 ng-class (AngularJS) 搜索 JSON 对象
【发布时间】:2016-08-05 23:26:06
【问题描述】:

我在控制器 (NotificationsController) 中定义了两个 JSON 对象。一个包含所有通知,另一个包含最新通知的 ID(过去 3 天)。

对象“通知”的格式:(t_notifications)

[{"0":"1","1":"4","2":"14-APR-16","3":"ALERT 1","ID":"1","ID_USER":"4","DATE":"14-APR-16","NOTIFICATION":"ALERT 1!"},{"0":"2","1":"1","2":"07-APR-16","3":"ALERT 2!","ID":"2","ID_USER":"1","DATE":"07-APR-16","NOTIFICATION":"ALERT 2!"},{"0":"3","1":"1","2":"13-APR-16","3":"ALERT 3!","ID":"3","ID_USER":"1","DATE":"13-APR-16","NOTIFICATION":"ALERT 3!"}]

“最新通知”对象的格式:(newest_notifications)

[{"0":"1","ID_NEWNOTIF":"1"},{"0":"3","ID_NEWNOTIF":"3"}]

我在这样的视图中显示所有通知:

<div class="panel-body" ng-controller="NotificationsCtrl">
<table datatable="ng" class="row-border hover">
  <thead>
    <tr>
      <th><b>ID</b>&nbsp;</th>
      <th><b>ID_USER</b>&nbsp;</th>
      <th><b>DATE</b>&nbsp;</th>
      <th><b>NOTIFICATION</b>&nbsp;</th>
    </tr>
  </thead>
  <tbody>
    <tr ng-repeat="data in t_notifications" ng-class="{selected: data.ID == **TO COMPLETE**>
      <td>{{ data.ID }}</td>
      <td>{{ data.ID_USER }}</td>
      <td>{{ data.DATE }}</td>
      <td>{{ data.NOTIFICATION }}</td>
    </tr>
  </tbody>
</table>
</div>

我想知道如何在我的表格中只选择最新的通知 - 通过 JSON 对象 newest_notifications 搜索 - 使用 ng-class?

PS:“selected”已经定义为蓝色背景色。

【问题讨论】:

    标签: javascript html angularjs json ng-class


    【解决方案1】:

    您可以对data.DATE 使用表达式。例如

    <tr ng-repeat="data in t_notifications" ng-class="{selected: data.DATE > someDateInThePast}">
    

    【讨论】:

    • 感谢您的回答,但我无法以这种方式完成此类任务。我必须通过比较 ID 来搜索对象。
    【解决方案2】:

    只需使用严格的filter

    ... ng-class="{'selected': (newest_notifications | filter : { ID_NEWNOTIF: data.ID } : true).length !== 0 }"
    

    小提琴 - https://jsfiddle.net/dyxf5xqj/

    【讨论】:

    • 太好了。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多