how to filter in with a comparition between 2 fields

35 views Asked by At

I want filter servers on the condition for those records with serverState and the initialstate in them are not equal.

{{servers | filter : serverState != initialState}}
1

There are 1 answers

2
user3249448 On BEST ANSWER

You can create your own custom filter which has logic to filter the server which don't have initial state matching with initalState variable value.

Your Custom filter

myApp.filter('filterServer', function () {
  return function (servers,initialState) {
  var filteredArray=[];
  for (var k = 0; k < servers.length; ++k) {
    var server = servers[k];
    if (server.state != initialState) filteredArray.push(server);
    }
    return filteredArray;
  };
});

Your HTML

<tr ng-repeat="server in Servers | filterServer : initialState">
      <td style="width:50%;fload:left">
          <span ng-bind="server.server"></span>
      </td>
      <td style="width:40%;fload:left">
         <span ng-show="server.state==1">State 1</span>
         <span ng-show="server.state==2">State 2</span>
      </td>
    </tr>

For sample please check this link

http://fiddle.jshell.net/zxr0qa1k/5/