1

Ich habe Array von Objekten wie:Wie wird der ausgewählte Wert in ng-Modell gespeichert, wenn die Quellenliste ein Array von Objekten ist?

vm.items = [{id: "1", val: "a"},{id: "2", val: "b"},{id: "3", val: "c"}] 

Und ich verpflichten, es Option zu wählen wie:

<select ng-model="vm.model.id" > 
    <option value="">select somthing</option> 
    <option ng-repeat="i in vm.items" value="{{i.id}}">{{i.val}}</option> 
</select> 

Aber wenn ich einige Artikel aus Dropdown wählen erhalte ich ganzes Objekt {} und ich möchte nur id . Wie kann ich das tun?

+0

ist es die zeigt, ganzes Objekt als Dropdown-Objekt, oder sehen Sie das gesamte Objekt, wenn Sie eine Änderung an der Auswahl protokollieren? – Und3rTow

Antwort

2

Sie können die ng-Optionen direkt auf dem select-Tag verwenden. Wenn Ihr json eine ID und den Namen Variable enthält können Sie es als diese angeben:

<select ng-model="vm.model.id" ng-options="i.id as i.name for i in vm.items"> 
    <option value="">select somthing</option> 
</select> 

Die i.id zu den Optionen-Wert eingestellt ist und die i.name auf den Text gesetzt

1

Verwenden Sie ng-model und ng-options in select, um dies zu erreichen.

Innen controller.js

$scope.selectedItem = ""; 

Markup

<select ng-model="selectedItem " name="state" 
     ng-options="item.id as item.value for item in vm.items"> 
    <option value="">select somthing</option> 
</select>