Ich habe zwei Auswahlfelder, eines für Monat und einen für Tag (Controller als Name ‚contactDetails‘ ist):
<select
data-ng-model="contactDetails.contactBasicInfo.bdmonth"
data-ng-options="bdMonth.key as bdMonth.value for bdMonth in contactDetails.months">
<option value="">Month</option>
</select>
<select
data-ng-model="contactDetails.contactBasicInfo.bdday"
data-ng-options="bdDay.key as bdDay.value for bdDay in contactDetails.days">
<option value="">Day</option>
</select>
Diese Ausgabe der wählt gut aus und ich kann sie verwenden, um Informationen in der Datenbank zu speichern. Keine Probleme dort. Das Problem ist, wenn ich die Informationen aus der Datenbank zurückziehen und die Auswahlfelder aktualisieren soll, um die Werte aus der Datenbank widerzuspiegeln. Sie nicht. Wenn ich die Werte fest im Controller festlege, werden sie aktualisiert, aber nicht, wenn die Werte nach einem $ http-Aufruf zugewiesen werden.
Ich habe dies an der Oberseite des Controllers die Standardeinstellungen einzurichten:
ctrl.contactBasicInfo.bdmonth = 0;
ctrl.contactBasicInfo.bdday = 0;
Und später rufe ich eine Funktion, die dann Werte für diese beiden Variablen zuweist:
ctrl.contactBasicInfo = data.contactInfo.contactBasicInfo;
Alle anderen Daten, die aus data.contactInfo.contactBasicInfo
kommt funktioniert und die Felder aktualisieren, wie Vorname, Telefon, E-Mail, etc. Wenn ich die Modelle in den HTML-Code wie {{ctrl.contactBasicInfo.bdmonth}}
platzieren, wird es die richtigen Werte zeigen. Ich weiß, dass die Werte vom $ http-Aufruf korrekt zurückkommen. Die Auswahlen ändern sich nicht, um die neuen Werte wiederzugeben.
Irgendwelche Ideen, die ich vermisse?
Danke!
möglich Duplikat: http://stackoverflow.com/questions/19872387/in-angularjs-how-do-you-get-a-select-to-refresh-when-the-array-for-ng-options – JanR
Würde 'track by' in diesem Fall helfen? – Lex
@JanR Ich denke nicht, dass wir über dasselbe reden. Das Array, das die Auswahl erstellt, ändert sich nie, nur der ausgewählte Wert. – Mattaton