相对于用户在玩家阵列中的位置,按顺序显示玩家

时间:2015-01-05 04:32:21

标签: javascript angularjs

我正在使用AngularJS制作纸牌游戏,我希望以相对于用户位置的游戏顺序显示玩家。用户的卡片始终位于屏幕底部的单独div中。为了使游戏顺序保持顺时针方向,它应首先显示下一个玩家,然后显示下一个玩家,然后显示下一个等等。我当前正在使用ng-repeat指令,但这会将玩家1放在第一位。

//- The Players 
  .row.center-block
    .col-md-2(ng-if='player.id != p.id ', ng-repeat='p in game.players')
      .row
        .col-md-12
          | {{p.name}}
          span.glyphicon.glyphicon-heart(ng-repeat='a in range(p.lives) track by $index')
        .col-md-12
          .card.col-md-1(ng-repeat='card in p.hand track by $index')
            | {{$index}}

如何从玩家对象开始获得一个玩家阵列循环?我的理论是迭代两次,先是ng-if='player.id != p.id '之后的数组中的每个人,然后是每个人。是否也可以从特定指数开始?

2 个答案:

答案 0 :(得分:1)

使用filter订购ng-repeat

内的列表

除去

ng-if='player.id != p.id '

添加

ng-repeat='p in game.players | orderBy: position'

答案 1 :(得分:0)

我想这样做,但事实证明在javascript中执行逻辑更容易。在我在玩家阵列中找到用户位置(x)的点处理游戏数据的部分中,我把它放在:

$scope.otherPlayers = $scope.game.players.slice(x).concat( $scope.game.players.slice(0,x) );

在我的html中,我将其更改为

.col-md-2(ng-if='player.id != p.id ', ng-repeat='p in otherPlayers')

它就像一个魅力。