我有一个自动填充搜索框。
<div ng-repeat="item in items| filter:search">
我想通过根据项目的名称对结果进行排序来使其更好。
item1 {name:'applePy'}
item2 {name:'pineApple'}
item3 {name:'application'}
item4 {name:'anApple'}
item5 {name:'apple'}
当我在搜索框中写appl
时,当前的实现结果将显示如下:
anApple
apple
applePy
application
pineApple
但是我希望根据插入的appl
来对结果进行排序:
apple
applePy
application
anApple
pineApple
两个排序之间的区别在于,在此示例中,结果按字母顺序根据搜索字符串appl
和结果的其余部分排序。
我该怎么做?
答案 0 :(得分:1)
您是否正在寻找搜索以ASC顺序显示以搜索字符开头的项目的结果?如果是这样,您可以通过添加新方法来执行此操作:
$scope.startsWith = function (source, target) {
return source.toLowerCase().indexOf(target.toLowerCase()) === 0;
}
然后将您的DIV更改为:
<div ng-repeat="item in items| filter:search:startsWith">
如果您打算列出“startsWith”的所有搜索结果,并将其余部分附加到ASC订单的底部。您必须编写自定义过滤器。 See docs.