2016-08-19 80 views
0

我有一個對象數組{ id:x, name: 's' }和使用ng-options創建下拉使用默認選定的數據。到目前爲止,這工作得很好。ng選項選擇的數據返回對象

現在,當我選擇其中一個選項並查看所選數據時,它將返回完整對象,但我只需要名稱字段以及必須在加載時選擇默認值。

// in controller 
vm.teams = [ 
     { 
     id: 1, 
     name:'First' 
     }, 
     { 
     id: 2, 
     name:'Second' 
     }, 
     { 
     id: 3, 
     name:'Third' 
     } 
    ]; 

    vm.teamFormData = { 
     team: '' 
    }; 

    vm.getTeam = function(formData) { 
     $log.debug(formData); << here I get object 
    } 

// in View 
<select ng-init="vm.teamFormData.team = vm.teams[0]" 
     ng-model="vm.teamFormData.team" 
     ng-options="t.name for t in vm.teams track by t.id" > 
</select> 

這裏是我的working plunker

回答

1

ngOptions語法稍微偏離 - 這是value as text for item in array

ng-options="t.name as t.name for t in vm.teams track by t.id" 

而且你ngInit就變成

ng-init="vm.teamFormData.team = vm.teams[0].name" 

附註 - 你可能穿上」要ngInit - 在上面的例子中沒有真正的用例。相反,只需在控制器中設置屬性即可。

看到plunkr:https://plnkr.co/edit/7SGIdtfjucMnMqiEa7JY?p=preview

+0

通過這樣做,我失去了默認的選定值。加載時沒有選擇 –

+0

@ pro.mean - 您是否更新了'nginit'? – tymeJV

+0

是的。我已經更新了它。請參閱plunker –