2017-05-06 8 views
0

Ich verwende AngularJS 1.5.6. Die ng-App und ng-Controller sind richtig eingerichtet. Meine Optionen sindAngularJS wählt keinen Wert

$scope.apis =[ 
      {'id':0, 'apiUrl':'https://api0.com', 'label':'Label0'}, 
      {'id':1, 'apiUrl':'https://api1.com', 'label':'Label1'}, 
      {'id':2, 'apiUrl':'https://api2.com', 'label':'Label2'}, 
      {'id':3, 'apiUrl':'https://api3.com','label':'Label3'} 
     ]; 

$scope.selectedApi = $scope.apis[1];// default 

Und in meinem select-Tag, wenn ich es so erklären:

<select ng-model="selectedApi" ng-options="x.apiUrl as x.label for x in apis"> 

dann jede Option macht wie folgt aus (zum Beispiel Label1):

<option label="Label1" value="string:https://api1.com">Label1</option> 

Aber die value ist nicht ausgewählt wie ich console.log() meine Auswahl in einem Event-Handler zeigt es den ausgewählten Wert ist undefined. Was ist der Grund?

+1

* AngularJS 3.2.1 *: Es gibt keine solche Ding. –

+1

Da ng-options 'x.apiUrl as ...' ist, sollte der ausgewählte Wert ein apiUrl sein, kein api. Wenn Sie möchten, dass das Modell (d. H. Das ausgewählteApi) ein api ist, sollten ng-Optionen 'x as ...' sein. –

Antwort

0

Ich denke du meinst:

<select ng-model="selectedApi" ng-options="x as x.label for x in apis"></select> 

In diesem Fall selectedApi ein Objekt (regards den Anfangszustand versetzt) ​​

Demo in Plunkr

Verwandte Themen