angularjs добавление выбранных элементов из раскрывающихся списков в область видимости

У меня есть таблица с раскрывающимся списком над каждым столбцом, где количество столбцов является динамическим. Я создал это следующим образом

            <table class='table' >
                <tr>
                    <th ng-repeat= "item in importTable[0]">
                        <select ng-model="selectedItem" ng-options="i.Name for i in optionList"></select>
                    </th>
                </tr>
                <tr ng-repeat="row in importTable">
                    <td ng-repeat="item in row">{{ item }} </td>
                </tr>
            </table>

Где optionList — список опций в выпадающих списках. Все раскрывающиеся списки имеют один и тот же optionList.

Как добавить выбранный элемент вместе с индексом столбца, который находится выше, в область действия модели?

Вот ссылка на JSfiddle http://jsfiddle.net/U3pVM/769/, просто нажмите импорт. Я хочу иметь возможность определить, какой столбец относится к какому типу.


person TJF    schedule 18.06.2013    source источник
comment
Затем индекс столбца должен быть свойством каждого элемента в массиве. Опубликуйте, что вы на самом деле пытаетесь сделать в скрипте или что-то в этом роде. Похоже, вы ищете решение проблемы, о которой мы не знаем.   -  person James Kleeh    schedule 18.06.2013
comment
Привет спасибо за ответ вот ссылка. я надеюсь, что это объясняет это лучше! jsfiddle.net/U3pVM/769   -  person TJF    schedule 19.06.2013


Ответы (1)


Вы можете использовать переменную $index, предоставленную ngRepeat, чтобы установить для ngModel значение определенный элемент в массиве:

В вашем контроллере вы сначала определяете массив, который будет содержать все модели:

function ImportCtrl($scope) {   
  $scope.selectedItems = [];
  ...
}

А затем внутри ngRepeat вы ссылаетесь на свою ngModel на определенный элемент внутри selectedItemsarray:

<select ng-model="selectedItems[$index]" ng-options="i.Name for i in columnNames"></select>

Демо FIDDLE

person Stewie    schedule 19.06.2013