Ich bin ein bisschen verwirrt mit Angular und ng-options
.
Ich habe ein einfaches Array und möchte damit eine Auswahl starten. Aber ich möchte, dass Optionen value = label.
script.js
$scope.options = ['var1', 'var2', 'var3'];
html
<select ng-model="myselect" ng-options="o for o in options"></select>
Was ich bekomme:
<option value="0">var1</option>
<option value="1">var2</option>
<option value="2">var3</option>
Was ich möchte:
<option value="var1">var1</option>
<option value="var2">var2</option>
<option value="var3">var3</option>
Also habe ich versucht:
<select ng-model="myselect2" ng-init=0 ng-options="options[k] as v for (k,v) in options"></select>
<select ng-model="myselect3" ng-init=0 ng-options="b as b for b in options"></select>
(Aber es hat nicht funktioniert.)
Bearbeiten:
Mein Formular wird extern gesendet, weshalb ich anstelle von 0 'var1' als Wert benötige.
quelle
value
in seinemselect
.Sie können
ng-repeat
mit folgenden verwendenoption
:Wenn Sie Ihre einreichen, können
form
Sie den Wert der Eingabe verbergen.DEMO
ng-selected ng-repeat
quelle
du könntest so etwas gebrauchen
Mit ng-selected wählen Sie die Option für den Fall, dass myselect vorab ausgefüllt wurde.
Ich bevorzuge diese Methode sowieso gegenüber ng-options, da ng-options nur mit Arrays funktioniert. ng-repeat funktioniert auch mit json-ähnlichen Objekten.
quelle
ng-options
funktioniert auch mit Objektdatenquellen. Siehe docs.angularjs.org/api/ng/directive/selectWenn Sie Ihre Auswahl wie folgt einrichten:
Sie erhalten:
Arbeitsgeige: http://jsfiddle.net/x8kCZ/15/
quelle
$ scope.option ist nach der Änderung gleich 'var1', auch wenn Sie im generierten HTML den Wert = "0" sehen
Plunker
quelle