根据 ng-repeat 在 ng-option 中设置选定值

set selected value in ng-option based on ng-repeat

<li class="list-group-item" ng-repeat="entity in displayedProjectRoles">
    <div>
        <strong>Role: </strong> 
        <select
            ng-model="project.role" 
            ng-options="option as option.name for option in project_role"
            ng-required="true"
            id="project_role"
            class="form-control">
        </select>
    </div>
</li>

如何根据 ng-repeatentity.role 的值设置模型 project.role 的值?我试过 ng-selected 甚至在 ng-model 中使用 entity.role 但它无法正常工作。

这是显示的项目角色中的数据

[
  {
    "empid": 2,
    "role": "employee"
  },
  {
    "empid": 1,
    "role": "pm"
  }
]

并在 project_role

[
  {
    "id": 1,
    "name": "employee"
  },
  {
    "id": 2,
    "name": "pm"
  }
]

所以 displayedProjectRoles 中角色的值基本上与 project_role

中的名称匹配

This 是 angular select.

的一个很好的例子

本质上,select 的 ng-model 必须匹配要绑定的 ng-option 值。在您的示例中,project.role 必须完全等于您的 ng-options 中的 option。请注意,这是特定于类型的,所以它是

option.id as option.name for option in project_role

option.id == 1然后project.role == '1'将不会绑定