2016-08-19 70 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 –