如何在ng-repeat中制作第一个元素

时间:2015-05-27 09:36:54

标签: angularjs angularjs-ng-repeat ng-repeat

我有一项任务是首先列出用户名。继承人的例子

$scope.items = [John,Bob,Tanya,Owen,George];
<div ng-repeat="item in items"></div>

结果将是:

John
Bob
Tanya
Owen
George

我怎样才能让Owen成为第一个:

Owen
John
Bob
Tanya
George

3 个答案:

答案 0 :(得分:0)

您可以将orderBy表达式一起使用。

如果你有一个类似于这个的JSON对象......

  $scope.itemsWithOrder = [{
    "name": "Owen",
    "order": 1
  }, {
    "name": "Dave",
    "order": 3
  }, {
    "name": "Ken",
    "order": 2
  }, {
    "name": "John",
    "order": 4
  }];

然后,您可以使用order属性对集合进行排序。

<div ng-repeat="itemw in itemsWithOrder | orderBy :'order'">
  {{itemw.name}} - {{itemw.order}}
</div>

这会给你输出...(你也可以用[{1}}反转输出,给出-

  

Owen - 1

     

肯 - 2

     

戴夫 - 3

     

约翰 - 4

我知道这对您拥有的对象没有帮助,但您可以从服务器获取替代对象?

答案 1 :(得分:0)

Fiddle

你可以看看我上面提供的小提琴。我创建了一个函数,它接受一个数组和一个字符串来搜索。如果找到,它会记录它的索引,然后将其移动到数组的前面并删除旧的。

{{1}}

答案 2 :(得分:0)

请检查此http://plnkr.co/edit/qcj8lLuUppYzS9ytW0WR?p=preview

简单地说:

<div ng-repeat="item in items| orderBy">{{item}}</div> 

控制器

var app= angular.module('app', []);
app.controller('ctrl', function($scope) {
  $scope.items = ['John','Bob','Tanya','Owen','George'];
});