Ich habe eine <select>
Box, die ich mit einigen Objekten bevölkere. Ich gruppiere sie, in diesem Beispiel von Team, mit group by
. Wenn sich jedoch ein Spielerteam ändert, wird die Gruppe nicht aktualisiert.ng-options Direktive wird nicht aktualisiert
Dies ist das Markup:
<select ng-options="player.name group by player.team for player in players"></select>
<button ng-click="change();">Change team name</button>
Und der Controller:
.controller('MainController', function($scope) {
$scope.players = [{
name: 'Player one',
team: 'Denmark'
},
{
name: 'Player two',
team: 'Denmark'
},
{
name: 'Player three',
team: 'England'
},
{
name: 'Player four',
team: 'England'
},
{
name: 'Player five',
team: 'England'
}
];
$scope.change = function() {
$scope.players[0].team = 'Sweden';
};
Here's ein mein Problem JSFiddle demonstriert.
Warum wird der Teamname nicht aktualisiert, wenn er geändert wird?
Hinzufügen von 'track by player.team' at Das Ende des 'ngOptions'-Ausdrucks scheint Ihr Problem zu lösen, aber die Frage ist * warum * ... – sp00m
@ sp00m Die Verwendung von' track by player.team' bricht die Auswahl. Wenn Sie [this] (http://jsfiddle.net/fhyc 96rx/2 /) und versuchen Sie Player 3 auszuwählen, Player 5 wird ausgewählt. –