Angular 获取 data-ng-options 的标签,但将值传递给 ng-model
Angular get label of data-ng-options but pass value to ng-model
我想将 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 像标签即 'DENTAL' 显示在 span
上但将值即 0
传递给 ng-model
将数组转换为如下所示的对象:
{
0: 'DENTAL',
1: 'PSYCHOLOGY'
}
并将其存储在单独的范围变量中(比方说 dict
),然后在模板中使用:
{{dict[choice.department]}}
仅将值存储在 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
参数,而不是对象中的特定 属性。
我想将 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 像标签即 'DENTAL' 显示在 span
上但将值即 0
传递给 ng-model
将数组转换为如下所示的对象:
{
0: 'DENTAL',
1: 'PSYCHOLOGY'
}
并将其存储在单独的范围变量中(比方说 dict
),然后在模板中使用:
{{dict[choice.department]}}
仅将值存储在 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
参数,而不是对象中的特定 属性。