Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Searching through JSON Object with ng-class (AngularJS)

I have two JSON objects defined in a controller (NotificationsController). One with all the notifications and another one with only the ID of the newest notifications (last 3 days).

Format of object "notifications": (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!"}]

Format of object "newest notifications": (newest_notifications)

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

I'm displaying all the notifications in a view like this:

<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>

I would like to know how it is possible to select in my table only the newest notifications - searching through the JSON object newest_notifications - with ng-class?

PS: "selected" is already defined with a blue background color.

like image 664
Ariana Avatar asked Apr 14 '16 12:04

Ariana


1 Answers

Just use a strict filter

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

Fiddle - https://jsfiddle.net/dyxf5xqj/

like image 96
potatopeelings Avatar answered Sep 18 '22 03:09

potatopeelings