Winkelauswahl und ng-Optionen

8

Ich habe diese Winkelauswahl:

%Vor%

Mein $scope.status_codes ist wie folgt:

%Vor%

Mein $scope.obj.status wird auf "300" oder "100" oder was auch immer aktualisiert, wenn ich meine Auswahl ändere, aber die Auswahlanzeige ist immer leer. Das Modell aktualisiert also den ausgewählten Wert der Auswahleingabe, aber die Eingabe zeigt den aktuell ausgewählten Wert nicht an. Es wird ein leeres Element angezeigt.

Wenn ich ng-Optionen ändere, um ng-options='status as (status.code ...' zu sein, funktioniert es, aber ich will nur status.code in meinem Modell, nicht das ganze Status-Array. Was gibt?

Ich habe {{obj | json }} in meinem HTML und es lautet:

%Vor%     
mikeb 14.12.2015, 16:14
quelle

2 Antworten

5

Entfernen Sie die Spur nach.

Aus den Dokumenten :

  

Seien Sie vorsichtig, wenn Sie as und track by im selben Ausdruck verwenden.

Meine beste Schätzung ist, dass das as einen normalen Wert verwendet, wie "300", aber der Track by verwendet einen typisierten Wert wie "int: 300". Das Entfernen der einen oder der anderen sollte es tun, vorzugsweise die Spur durch.

Sie geben dies als ein Beispiel:

  

Das wird funktionieren:

%Vor%
  

aber das wird nicht funktionieren:

%Vor%     
Amit 14.12.2015, 16:21
quelle
1

Laut den Dokumenten hier: Ссылка :

%Vor%

In Ihrem Beispiel sollte das also funktionieren (Sie erhalten einen Codewert als Auswahlwert im Modell):

%Vor%

track by sollte verwendet werden, wenn Sie ein Objekt als Wert im Modell, ein Array mit Objekten für Optionen haben und den aktuellen Modellwert einem der Objekte im Array zuordnen möchten.

    
scareddragon 14.12.2015 16:40
quelle