2016-03-30 11 views
0

Ich versuche, eine <Option> mit ngSelected in einem ngRepeat automatisch auszuwählen.AngularJS - Werte in ngSelected nicht vergleichen

Eine Option „ausgewählt“ Attribut im generierten HTML hat und zwischen <Option> Tags, aber die < > wählen scheint keine Option ausgewählt zu haben.

$scope.selected = 2; 
$scope.isSelected = function(x) { 
    return (x == $scope.selected); 
}; 

$scope.myList = [{ 
    "id": "1", "name": "aaa" 
}, { 
    "id": "2", "name": "bbb" 
}, { 
    "id": "3", "name": "xxx" 
}]; 

...

<select ng-model="selected"> 
    <option ng-repeat="item in myList" value="{{item.id}}" 
    ng-selected="isSelected(item.id)"> 
     {{item.name}} [selected {{item.id == selected}}]</option> 
</select> 

ich ParseInt Werte versucht haben, werfen sie den Vergleich zu bespannen, eval ... aber es ist das gleiche: Es scheint, keine Option ausgewählt.

https://jsfiddle.net/monguz/yxsqgz5n/

Was bin ich? Danke

EDIT: Danke für Kommentare und Antworten.

Die Geige zeigt eine vereinfachte Version meines echten Codes. Ich habe bereits "ausgewählt" als Zeichenfolge versucht, aber ich kann nicht 100% sicher über seinen Typ sein.

Wie auch immer, ich verstehe nicht, warum der Code as-is nicht eine ausgewählte Option zeigt. Laut der Dokumentation ist der Ausdruck "truthy", daher sollte er als ausgewählt erscheinen.

https://docs.angularjs.org/api/ng/directive/ngSelected

+0

versuchen Sie $ scope.selected = "2" –

Antwort

2

Ich änderte dies in jsfiddle und arbeitete.

$scope.selected = '2';