我正在使用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 '
之后的数组中的每个人,然后是每个人。是否也可以从特定指数开始?
答案 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')
它就像一个魅力。