2015-06-09 4 views
2

Настройка некоторых разрешений. Я хотел бы, чтобы мой item.roles был как массив. Это возможно? Если не самый умный способ заставить мою модель item.roles стать массивом в конце?set value value as array

<select class="form-control" ng-model="item.roles" ng-init="item.roles[0]='client'"> 
    <option value="[super, admin, producer, resource, client]">Super</option> 
    <option value="[admin, producer, resource, client]">Admin</option> 
    <option value="[producer, resource, client]">Producer</option> 
    <option value="[resource, client]">Resource</option> 
    <option value="[client]">Client</option> 
</select> 
+0

Вы, вероятно, следует определить эти значения массива в контроллере. –

+0

Вы должны создать карту в контроллере с ключом, являющимся ролью и значением, являющимся массивом с ролями. – nikhil

+0

Можете ли вы привести пример? Я новичок на карте –

ответ

2

Вы можете использовать ngList директиву:

<select class="form-control" ng-list ng-model="item.roles" ng-init="item.roles=['client']"> 
    <option value="super, admin, producer, resource, client">Super</option> 
    <option value="admin, producer, resource, client">Admin</option> 
    <option value="producer, resource, client">Producer</option> 
    <option value="resource, client">Resource</option> 
    <option value="client">Client</option> 
</select> 

Обратите внимание, что значения параметра в этом случае список разделенных запятыми (или вы можете изменить разделитель).

ngList директива используются для преобразования разделителей списка значений в/из массива:

ввода текста, который преобразует между разделителями строкой и массивом строк. По умолчанию разделитель представляет собой запятую, за которой следует пробел - эквивалент ng-list = ",". Вы можете указать пользовательский разделитель как значение атрибута ngList - например, ng-list = "|".

Демо:http://plnkr.co/edit/TbkEne7ap4WpCS4UPj7U?p=preview