ng-selected funktioniert nicht im select-Element

7

Ich habe eine gebundene Auswahl

%Vor%

Wenn jedoch beide c.CollegeName == collegeSelection.CollegeName übereinstimmen, wird das Element immer noch nicht ausgewählt. Die Dokumentation scheint nicht zu helfen. Irgendwelche Ideen?

    
rross 15.07.2013, 01:45
quelle

4 Antworten

21

ng-selected sollte im Verzeichnis <option> Tag verwendet wird, nicht in dem <select> -Tag. Nehmen Sie einen näheren Blick auf seine doc und dem Beispiel.

Weil die Bestimmung der select -Direktive der ausgewählten Option auf ngModel basiert. Sobald Sie also ng-selected="c.CollegeName == collegeSelection.CollegeName" entfernen, sollte Ihr Code funktionieren.

habe ich eine sehr einfache zupfen die "ausgewählt" -Funktion in demonstrieren select Richtlinie.

Weitere Details:

AngularJS verwendet ngModel Direktive "Zwei-Wege-Datenbindung" zwischen Ihrem Modell und UI-Elementen zu ermöglichen.

Im Fall von "select", das Modell collegeSelection Sie als <select ng-model="collegeSelection" ...> angegeben ist das ausgewählt Element. Was bedeutet, wenn ein Benutzer ein Element aus der Dropdown auf der Seite auswählt, collegeSelection wird in diesem Artikel festgelegt wird; und , wenn Sie collegeSelection auf ein Element in Ihrem JavaScript-Code setzen, stellt AngularJS sicher, dass das entsprechende <option> ausgewählt ist.

Sagen Sie, Sie haben den folgenden Code in Ihrem Controller:

%Vor%

Und das HTML sieht so aus:

%Vor%

Das ist es! Das erste College im Colleges-Array wird ausgewählt , wenn Sie den Code ausführen.

Merken Sie sich nur collegeSelection ist die ausgewählte Option, egal, weil der Benutzer ein Element auf der Benutzeroberfläche ausgewählt hat oder Sie ein Element in Javascript ausgewählt haben.

So funktioniert die bidirektionale Datenbindung.

    
Ye Liu 15.07.2013, 04:09
quelle
12

Nachdem ich eine Weile mit ng-selected herumgespielt habe, konnte ich es nicht so funktionieren lassen, wie du es willst. Allerdings konnte ich eine bestimmte Option mit ng-init vorauswählen.

Hier ist ein JSFiddle meiner Lösung. Meine <select> endete als:

%Vor%

Und mein colors -Array ist:

%Vor%

Wenn Sie ng-init="selectedColor='yellow'" auf einen anderen Wert ändern, wird eine andere Option ausgewählt.

    
Brett DeWoody 15.07.2013 15:53
quelle
1

Manche Leute haben Probleme damit. Ich fand eine großartige Lösung für ein einfaches Drop-Down wenn controller as someController

%Vor%

'

    
Mikhail Malakhvei 21.01.2017 00:23
quelle
0

Ich hatte ein ähnliches Problem und erkannte, dass die Ursache in den unterschiedlichen Datentypen lag. ng-model wurde mit einem Stringwert verglichen, aber ich zog eine ganze Zahl aus der Datenbank, sodass sie die Option nicht automatisch auswählte. Um dies zu überwinden, habe ich nach der Abfrage der Daten aus der Datenbank toString() für die Ganzzahl aufgerufen, um sicherzustellen, dass die Datentypen übereinstimmen.

    
Dennis Wanyonyi 29.12.2017 21:30
quelle