角度过滤器搜索具有相似且不精确的单词

时间:2016-05-04 14:37:50

标签: javascript angularjs

过滤器只查找完全匹配但不相似的文本。例如。如果其中一个条目是" John Dwayne Smith",用户必须按照确切的顺序键入这些单词,以便过滤器搜索它们,但是如何使搜索以&#34的方式工作;你好,世界!"即使一个人输入这些单词的组合,也会显示,例如,约翰史密斯"?

HTML:

<input type="text" placeholder="Search" ng-model="userSearch">

   <div ng-repeat="user in users | filter:userSearch">
     <div>
       {{user.firstname}} {{user.lastname}}
     </div>
   </div>

JS:

angular.module('myApp', [])
  .controller('myCtrl', function($scope){

  $scope.users = [

    {firstname: 'john', lastname: 'dwayne smith'},
    {firstname: 'jane', lastname: 'dwayne due'},
    {firstname: 'bob', lastname: 'dwayne rand'}

  ];

});

JSBin Example

2 个答案:

答案 0 :(得分:1)

看看angular-filter。它提供了fuzzy filter

<input type="text" ng-model="search" placeholder="search book" />
<li ng-repeat="book in books | fuzzy: search">
  {{ book.title }}
</li>
<!--case sensitive-->
<li ng-repeat="book in books | fuzzy: search: true">
  {{ book.title }}
</li>

答案 1 :(得分:0)

使用角度滤镜时,|过滤器的工作方式与类似&#39;但是如果你最后添加:true,那么它就可以作为&#39; 相等&#39;