Skip to content Skip to sidebar Skip to footer

Angularjs: Search Filter Not Working When Name Starting With ! (exclamation Mark)

I have list of states and I have added search filter on name of states. I have array like this: stateList : [{name: 'abc', area:500},{name: '!def', area:500}] I have
  • wi
  • Solution 1:

    The problem is that ! token is recognized by AngularJS as "negative predicate". Nevertheless you can create your custom myFilter like this:

    angular.module('app', []).controller('ctrl', function($scope) {
      $scope.stateList = [{
        name: 'abc',
        area: 500
      }, {
        name: '!def',
        area: 500
      }]
    }).filter('myFilter', function() {
      returnfunction(input, filter) {
        if (!filter.name)
          return input;
        return input.filter(function(x) {
          return x.name.indexOf(filter.name) != -1;
        });
      }
    })
    <scriptsrc="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script><divng-app='app'ng-controller='ctrl'><inputtype='text'ng-model='searchText' /><ul><ling-repeat='state in stateList | myFilter : {name:searchText}'>{{state | json}}</li></ul></div>

    Solution 2:

    Post a Comment for "Angularjs: Search Filter Not Working When Name Starting With ! (exclamation Mark)"