2013-09-17 2 views
0

У меня есть следующий список выбора:Как выбрать несколько вариантов при подготовке множественного выбора списка в AngularJS

<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

Спасибо!

ответ

1

Ваши выбранные значения - это идентификаторы, а не полные объекты.

Как и вы, r.id as r.name, вам нужно поместить идентификаторы в свой массив, а не полные объекты.

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

+0

Глупый меня - я только добавил 'r.id как' позже, чтобы попытаться решить эту проблему и сделал новый для себя. DOH –

1

Внутри ng-options вы указываете ids как значения для параметров. Так вы должны сделать:

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