2016-04-15 3 views
1

Gibt es eine Möglichkeit, die folgenden select einen pre-selected Club haben können?angular ng-options mit vorgewähltem Wert nach Objekt-ID

<select ng-model="c.pilot.clubIdx" ng-options="club.idx as club.name for club in c.clubs track by club.idx"> 

c.pilot.clubIdx = 2
c.clubs = {{idx: 1, Name: "club1"}, {idx: 2, Name: "club2"

}}

Das Auswahlmenü sollte "club2" anzeigen.

Da die Schläger in einer db gespeichert sind und geändert werden können, möchte ich sie nur als references auf der pilots behalten.

Gelöst: Entfernen von Track von löst das Problem.

Antwort

0

in den ng-Modell des Auswahl auf den Wert der Option, die Sie ausgewählt wollen gesetzt Controller: Es sollte

+0

das ist das Ding, c.pilot.clubIdx ist allready Wert 2, aber nicht in der Ansicht ausgewählt. –

+0

@OlliiRenner können Sie einen Plünderer mit diesem Problem erstellen? Es sollte kein Problem sein, den Wert der Auswahl mit dieser Methode zu setzen, hier ist ein Beispiel: http://plnkr.co/edit/ygieal5wxbCwj0rlzTtN?p=preview –

+1

vielen Dank. Hinzufügen der Spur von option.id (in Ihrem Fall) erstellt das Problem neu. Entfernen Sie es in meinem Fall - löst es :) ich verstehe nicht wirklich warum, aber eckige Dokumente sagt "Seien Sie vorsichtig, wenn Sie wählen als und track by im gleichen Ausdruck." –

0
<select ng-model="c.pilot.clubIdx" ng-options="club.idx as club.name for club in c.clubs track by club.idx" ng-selected="(club.idx == 2)?true:false"> 

hinzufügen-wie so gewählt.

var club =_.where(c.clubs, {name:"club2"}); 
$scope.c.pilot.clubIdx = club.idx; 
+0

Ich denke, das funktioniert nur, wenn ich die ng gewählte auf einen