使用ngOptions&带有多个对象的ngModel&领域

时间:2015-12-18 21:15:41

标签: javascript angularjs

我在选择字段上使用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语句,我可以让所有部门都显示在下拉列表中,但我不知道如何为每个用户显示该选项。此外,我希望能够在更改时触发回调函数。

1 个答案:

答案 0 :(得分:1)

我已修改了您的Plunkr,因此它可以按预期运行。

基本上,您只需要更改呈现选项的方式,将模型设置为用户的departmentId,并使部门键成为所选选项的值。

<select name="departmentSelect" 
        ng-model="u.departmentId" 
        ng-options="department.key as department.value for department in users.departments">
</select>

干杯,巴勃罗。