2016-06-08 9 views
0

Angenommen, es gibt ein Objekt (Spiel), das ein Array mit Objekten (Spielern) hat und wenn das Player-Array einen bestimmten Wert (_id) hat, der dem aktuellen Wert entspricht Verstecken Sie eine Schaltfläche (Join).angular hide button object object array enthält key

Spielobjekt:

{ 
     "_id":"123459595", 
     "players":[ 
      { 
      "_id":"some_id", 
      "name":"some_username" 
      } 
     ] 
    } 

Ich weiß, dass ich den Knopf verstecken kann wie:

<button ng-hide="playerJoined">Join game</button> 

Wo playerJoined eine Erklärung ist, dass die Spieler überprüft, ob in dem Array ist. Ich habe Zugriff auf den aktuellen Player-Wert von der Variable currentPlayer, die von $ rootScope verfügbar ist.

Wie sollte ich prüfen, ob der currentPlayer als Wert im Array mit Spielern existiert?

Fiddle of example (without the right check).

+0

Haben Sie einen Plünderer dafür? – jsmtslch

+0

@jsmtslch hinzugefügt eine Geige –

+0

http://jsfiddle.net/Lvc0u55v/5155/
Also habe ich Bedingung in Ihrem ng-verstecken. Wollen Sie das tun? – jsmtslch

Antwort

2

können Sie ng-hide auf einer $scope.inGame() Funktion, die $scope.game.players für die angegebene ID überprüft. So ähnlich: http://jsfiddle.net/mxhy0sdd/

P.S. Verwenden Sie $ rootScope nicht, um Daten zwischen Controllern zu teilen: P Ich habe das auch behoben