在Angular.js集合中的位置

时间:2014-07-03 07:01:54

标签: angularjs ng-repeat angularjs-orderby

我有这个集合/对象数组

$scope.users = [
    {name:'Maria', score:90},
    {name:'Bob', score:10},
    {name:'Claire', score:17},
];
$scope.currentUser = 'Bob';

我使用ng-repeat和orderBy

列出它们
li.list-group-item(ng-repeat="user in users | orderBy:'score':true")

如何显示消息:“欢迎Bob,今天你是#3 ”。 其中“1,2,3 ......”是他在基于“得分”的有序集合中的位置

2 个答案:

答案 0 :(得分:0)

使用{{$index}}显示索引。

请记住它从0开始,因此您必须添加1。

{{ $index + 1 }}

希望这有帮助。

答案 1 :(得分:0)

您可以使用$ filter

找到当前用户

的JavaScript

app.controller('UsersCtrl', ['$scope', '$filter', function ($scope, $filter) {
    $scope.users = [
        {name: 'Maria', score: 90},
        {name: 'Bob', score: 10},
        {name: 'Claire', score: 17},
    ];

    user = $filter('filter')($scope.users, {name: 'Bob'})[0];
    // or
    // user = $filter('filter')($scope.users, name: $scope.currentUser)[0];

    $scope.position = $scope.users.indexOf(user) + 1;
}]);

模板

<p>Welcome {{ currentUser }}, today you are #{{ position }}</p>

应该工作。