我有一个对象{ id:x, name: 's' }
数组,并使用ng-options创建默认选定数据的下拉列表。到目前为止,此工作正常。
现在,当我选择其中一个选项并查看所选数据时,它会返回完整对象,但我只需要名称字段,并且必须在加载时选择默认值。
// 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
答案 0 :(得分: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