Angular获取data-ng-options的标签,但将值传递给ng-model

时间:2015-12-16 22:11:22

标签: angularjs angular-ngmodel

我想将data-ng-options的值传递给ng-model,但是获取要显示在跨度上的值的标签,如下所示,我将如何处理?

查看

<tr ng-repeat="choice in vm.choices">
    <td>
        <span>@{{choice.department }}</span>
      <div class="form-group">
         <div class="input-group">
          <select data-ng-options=
                'd.value as d.label for d in vm.departments' ng-model="choice.department">
                    </select>
         </div>
      </div>
    </td>
</tr>

控制器

vm.departments = [
            {value:0, label:'DENTAL'},
            {value:1, label:'PYCHOLOGY'}

          ];

ID就像span上显示的'DENTAL'标签,但是将值0传递给ng-model

2 个答案:

答案 0 :(得分:1)

仅在ng-model中存储值是没有意义的。在处理下拉列表中的对象数组时,存储对象是标准方法。

请考虑以下事项:

<span>@{{choice.department.value }}</span>
<span>{{choice.department.label}}</span>
<div class="form-group">
  <div class="input-group">
    <select data-ng-options='d.label for d in vm.departments' 
            ng-model="choice.department">
    </select>
  </div>
</div>

http://plnkr.co/edit/MGIvAAhiSsgkxSXpwTWZ?p=preview

您可以访问对象的所有属性以用于您需要的任何内容。

这里的区别在于ng-options的结构。通过不提供as子句,整个对象被分配给ng-model参数,而不是来自对象的特定属性。

答案 1 :(得分:0)

将数组转换为如下所示的对象:

{
  0: 'DENTAL',
  1: 'PSYCHOLOGY'
}

并将其存储在单独的范围变量中(假设为dict),然后在模板中使用:

{{dict[choice.department]}}