AngularJS:orderBy

时间:2014-09-18 09:58:18

标签: angularjs sql-order-by

所以我有一个带有一些名字的ng-repeat。我想要做的是跟随。 输出到屏幕的名称按字母顺序排列。

  

<div ng-repeat="n in names | orderBy:'name'"></div>

     
      
  •   
  •   
  • 约翰
  •   
  • 麦克
  •   
  • 齐格
  •   

但是,是否可以始终将名称“Mike”显示为顶级名称,并按字母顺序排列其余名称?

  
      
  • 麦克
  •   
  •   
  •   
  • 约翰
  •   
  • 齐格
  •   

2 个答案:

答案 0 :(得分:4)

您可以为此编写其他排序功能。例如:

HTML:

<div ng-repeat="n in names | orderBy:[egoSort, 'name']">{{n}}</div>

控制器:

$scope.egoSort = function(name) {
    return name === 'Mike' ? '' : name;
};

这是可能的,因为orderBy允许您使用数组表示法指定多个谓词。

演示:http://plnkr.co/edit/FfpcjJBBMm52A71Pa01m?p=preview

答案 1 :(得分:0)

还有一种方法......

向要显示在顶部的用户对象添加一个属性order

var specificUserName = {name: Mike,order:0} //此名称将首先出现在列表

HTML将是

<div ng-repeat="n in names | orderBy:['order', 'name']">{{n}}</div>