0

列の数が動的である各列の上にドロップダウンがあるテーブルがあります。これを次のように作成しました

            <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/へのリンクで、インポートをクリックするだけです。どの列がどのタイプであるかを定義できるようにしたい。

4

1 に答える 1

1

ngRepeatによって提供される $index 変数を使用して、配列内の特定の項目にngModelを設定できます。

コントローラーで、最初にすべてのモデルを保持する配列を定義します。

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

さらに、ngRepeat 内で、ngModel をselectedItems配列内の特定の項目に参照します。

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

デモフィドル

于 2013-06-19T05:02:28.110 に答える