Ich habe ein Problem bei der Aktualisierung meiner ng-Modell in der Auswahl.
Ich habe folgende HTML:AngularJS Auswahl - Einstellung ng-Modell in der Steuerung aktualisiert nicht ausgewählten Wert
<div ng-app>
<div ng-controller="Ctrl">
<select ng-model="viewmodel.inputDevice"
ng-options="i.label for i in viewmodel.inputDevices">
</select>
</div>
</div>
Und den folgenden Code:
function Ctrl($scope) {
// view model
$scope.viewmodel = new function() {
var self = this;
var elem1 = {
value: '1',
label: 'input1'
};
var elem2 = {
value: '2',
label: 'input2'
}
self.inputDevices = [elem1, elem2];
self.inputDevice = {
value: '1',
label: 'input1'
};
};
}
Sie können die Verwendung folgende JSFiddle
Was ich will, in Inputdevice derselben zu tun ist, setzen Werte, die das erste Gerät in der Sammlung inputDevices hat.
Ich weiß, dass ich elem1 übergeben kann und es wird funktionieren, aber ich kann es nicht tun, da ich die Auswahl im lokalen Speicher speichern und dann wieder auf das ng-Modell-Objekt wiederherstellen möchte.
self.inputDevice = {
value: '1',
label: 'input1'
};
Ich würde speichern Index nur:
self.inputDevice = 0; // or 1 - second item
und:
<select>
<option ng-repeat="i in viewmodel.inputDevices"
value="{{i.label}}"
ng-selected="viewmodel.inputDevices.indexOf(i) == viewmodel.inputDevice"
>{{i.label}}</option>
</select>
funktionieren diese Weise
Jeder möglicher Vorschlag
Dank
Vielen Dank für die antwort es ist hilfreich, aber es ist nicht ganz geeignet für meine bedürfnisse, da ich das gesamte objekt speichern muss und auf seinen schlüssel angewiesen bin und seit t nicht indexiere Die inputDevices-Sammlung wird dynamisch geändert. – liorafar
@ downvoter was ist falsch in meiner Antwort, bitte erklären –