2015-11-09 2 views
1

Я использую ng-repeat для генерации некоторых данных (имя пользователя, логин, роль и действия). Каждый раскрывающийся список (роль) имеет тот же список опций.массив select - ngOptions

Ожидаемый результат: Expected output

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

Моя проблема заключается в том, что я не могу выбрать разные параметры для каждой строки. Поскольку все они связаны с одной и той же ng-моделью, все они обнаруживают изменения и все изменяются на новый вариант.

<table> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Username</th> 
     <th>Role</th> 
     <th>Actions</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr data-ng-repeat="participant in model.participantData"> 
     <td>{{participant.DisplayName}}</td> 
     <td>{{participant.UserLogin}}</td> 
     <td> 
     <label for="{{participant.ParticipantID}}" class="sr-only"> 
      Choose a role 
     </label> 
     <select id="{{participant.ParticipantID}}" data-ng-options="role.RoleID as role.RoleName for role in model.rolesData" data-ng-change="roleChanged(participant)" data-ng-model="model.chosenRole"> 
     </select> 
     </td> 
     <td> 
     <span aria-hidden="true" class="fa fa-minus-circle clickable"</span> 
     <span class="sr-only">Delete group member</span> 
     </td> 
    </tr> 
    </tbody> 
</table> 

ответ

2

Вместо того чтобы давать такую ​​же модель, Дайте им модель, ng-repeat например

Как это

data-ng-model="participant.chosenRole" 

Выбор будет

<select 
    id="{{participant.ParticipantID}}" 
    data-ng-options="role.RoleID as role.RoleName for role in model.rolesData" 
    data-ng-change="roleChanged(participant)" 
    data-ng-model="participant.chosenRole"> 
</select> 

Вы можете получить выбранное значение каждой строки от model.participantData

+0

Таким образом, добавление свойства к массиву объектов, заполненных вызовом службы. Это то, что я должен был подобрать, когда я впервые начал изучать угловые или больше времени? Это даже не передумало. – Mathemats

+0

@Mathemats это просто трюки. вы не можете научиться подобным вещам из любой книги или документации. это происходит из обсуждения во время разработки. –

Смежные вопросы