AngularJS:自定义订单

时间:2017-06-01 20:17:53

标签: angularjs

我有一个自动填充搜索框。

<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和结果的其余部分排序。

我该怎么做?

1 个答案:

答案 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.