用Angular更好地搜索

时间:2016-03-10 03:33:32

标签: angularjs

我已经构建了一个角度应用程序,可以搜索大量的对象。

问题是搜索过滤器匹配返回不相关搜索的字符串的任何部分。 例如。 如果我搜索史蒂夫的名字 结果将带来史蒂夫,夏娃和史蒂文。我希望搜索结果能够返回steve和steven。 Plunkr: https://plnkr.co/edit/awN5ZxIpZ3fJJUkD5k6Y 代码

<input id="search-input" ng-model="searchTerm" placeholder="Search">
</div>
<ul class="search-ul">

    <li class="search-list"  ng-if="searchTerm.length > 2" ng-repeat="item in SearchItems| filter:searchTerm">
         <div class="button-wrap">
        <a href="" ng-click="openLinkSearch(item.url)"><img class="icon" src="{{item.image}}" /></a>
    </div>
       <span class="text">{{item.name}}</span>
    </li>
</ul>

2 个答案:

答案 0 :(得分:2)

使用只有名称字段的对象进行复制,我会得到预期的结果(&#39; steve&#39;以及&#39; steven&#39; only)。这表明它匹配名称字段以外的其他内容。

如果您希望过滤器仅使用item.name字段,请使用以下内容:

<li class="search-list"  ng-if="searchTerm.length > 2" ng-repeat="item in SearchItems| filter:{name:searchTerm}">

答案 1 :(得分:0)

请参阅Angular材料。 https://docs.angularjs.org/api/ng/filter/filter

对于严格搜索,您必须将对象属性标记为搜索字段。

例如过滤名称 foreach()

还尝试设置严格

<input ng-model="searchTerm.name"></label>
<label>Equality <input type="checkbox" ng-model="strict"></label><br>