Выпадающее значение повторяется в параметрах nog Angular

У меня есть динамически сгенерированная таблица html, которая добавляет строки на основе отображаемой записи. Я добавляю столбец, который будет содержать раскрывающийся список. Я использовал для этого ng-options, однако каждый раз, когда я меняю одну запись, остальные тоже обновляются. Пробовал изменить его на ng-repeat и получил тот же результат. См. код ниже:

        <td>    

       <select class="form-control" ng-model="$ctrl.selectedRC" ng-    options="r.ccd as (r.OName + ' -- '+ r.RCName)  for r in $ctrl.RC track by r.ccd"> </select>
<!--if I have 5 records, all dropdowns in the table change -->
    </td> 

Использование нг-повторения:

 <select class="form-control" ng-model="$ctrl.selectedRC" <option value="" ng-selected="true">--Select one--</option>
                        <option ng-repeat="r in $ctrl.RC"
                        value="{{r.OName}}"
                        ng-selected="{{r.OName === selectedRC}}">{{r.RCName}}
                        </option>

                        </select>

Я знаю, что эти два в настоящее время отображают две разные вещи (одна представляет собой конкатенированный набор значений, а другая — одну). Но мой главный интерес - выяснить, как сделать так, чтобы у каждого <td> было собственное раскрывающееся меню, не затрагивая остальные строки.


person joeCarpenter    schedule 14.11.2016    source источник


Ответы (1)


Просто потому, что вы используете одну и ту же ng-модель для всех строк.

Вам нужно определить другой для каждой строки.

Ты делаешь это:

ng-model="$ctrl.selectedRC"

но вам нужно что-то вроде этого:

ng-model="$ctrl.selectedRC[$index]"

где $index — ваша ссылка на строку.

person eliagentili    schedule 14.11.2016
comment
См., например, этот jsbin, который я создал: jsbin.com/pasixujica/edit?html, js, вывод - person eliagentili; 14.11.2016
comment
Благодарю вас! Однако теперь я не могу отобразить свой выбор, так как он исчезает :( - person joeCarpenter; 14.11.2016
comment
‹select class=form-control ng-model=$ctrl.selectedRC[$index] ‹option value= ng-selected=true›--Выберите один--‹/option› ‹option ng-repeat=r в $ctrl. Значение RC={{r.OName}} ng-selected={{r.OName === selectedRC}}›{{r.RCName}} ‹/option› - person joeCarpenter; 14.11.2016
comment
Как я уже говорил, $index — это пример, я сказал что-то вроде этого, а не копировал это. Вы видели мой пример jsbin? - person eliagentili; 14.11.2016
comment
Я сделал то же самое в том, где я использовал ng-options, и он делает то же самое :( - person joeCarpenter; 14.11.2016
comment
О, я пропустил ссылку на пример, дайте мне посмотреть. ТЫ! - person joeCarpenter; 14.11.2016