我在选择字段上使用ngOptions来生成选项列表。
我想要做的是让下拉列表填充完整的部门列表,但是根据用户所在的部门选择默认选项。
对于每个用户,他们只能分配到一个部门,但每个下拉列表都包含相同的部门列表。
所以我需要以某种方式将users.departments.key加入users.list.departmentId,同时保持ngModel范围内的所有内容。
我可以更改存储部门的位置($ scope中的任何位置),但更改$ scope.users会导致应用程序中的其他位置出现问题。
$scope.users.departments = [
{
key: 123,
value: 'Advertising'
},
{
key: 114,
value: 'Editorial'
},
{etc}]
$scope.users.list = [
{
firstName: 'john',
lastname: 'smith',
departmentId: 123
},
{etc},
{etc}]
此处有Plunkr链接:http://plnkr.co/edit/7CuIxwUX3Qrb8qxUm3n0?p=preview
在ngOptions中使用上面的select语句,我可以让所有部门都显示在下拉列表中,但我不知道如何为每个用户显示该选项。此外,我希望能够在更改时触发回调函数。
答案 0 :(得分:1)
我已修改了您的Plunkr,因此它可以按预期运行。
基本上,您只需要更改呈现选项的方式,将模型设置为用户的departmentId,并使部门键成为所选选项的值。
<select name="departmentSelect"
ng-model="u.departmentId"
ng-options="department.key as department.value for department in users.departments">
</select>
干杯,巴勃罗。