在AngularJS中准备多选列表时如何选择多个选项

时间:2013-09-17 09:16:44

标签: javascript angularjs ng-options

我有以下选择列表:

<select multiple="multiple" ng-model="userRoles" ng-options="r.id as r.name for r in roles"></select>

以上列出了所有可用角色的列表。我需要在呈现表单时预先选择用户所属的角色。我可以将角色分配给userRoles,但是如果我尝试创建一个数组并将与用户关联的角色推送到该数组中,则不会选择任何项目。

我创建了一个jsBin,让你玩非工作解决方案(并希望修复它):http://jsbin.com/icoSoj/1/edit?html,js,output

谢谢!

2 个答案:

答案 0 :(得分:1)

ng-options内,您指定ids作为选项的值。所以你应该这样做:

$scope.userRoles = [
    $scope.roles[1].id,
    $scope.roles[2].id
];

答案 1 :(得分:1)

您选择的值是ID而非完整对象。

正如r.id as r.name那样,您需要将ID放入数组而不是完整对象。

http://jsbin.com/uFiDuxa/1/edit