ng-options选择数据返回对象

时间:2016-08-19 18:05:16

标签: angularjs ng-options

我有一个对象{ 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

1 个答案:

答案 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