0

少し調べてみたところ、似たようなものがいくつか見つかりましたが、私の問題に答えているように見えるものはありません:

このチュートリアルに基づいて実行した AngularJS を使用してスプレッドシートを作成しています。そこから、ニーズに合わせてコードを変更しようとしています。

次のように、2D配列にあるさまざまな値でセルを埋めようとしています:

[
    ["block A1", "block B1", "block C1"],
    ["block A2", "block B2", "block C2"]
]

<input value=""> タグを介してこれらの文字列をそれぞれのセルに入力したいと思います。ng-repeat2D 配列の内部要素にアクセスするために (またはその他の該当するものを)使用するにはどうすればよいですか?

これが私の現在のコードです:

sheet= function($scope, $parse){
    $scope.columns = headerRow2;
    $scope.rows = numOfRows;
    $scope.cells = {};
    $scope.values = filteredResults;

    //... 
}


<div ng-app ng-controller="sheet">
    <table>
        <tr class="column-label">
            <td></td>
            <td ng-repeat="column in columns">{{column}}</td>
        </tr>
      <tr ng-repeat="row in rows">
            <td class="row-label">{{row}}</td>
            <td ng-repeat="column in columns">
                <div>
                    <input ng-repeat="subvalues in values[$index]" value="{{subvalues}}">
                </div>
            </td>
        </tr>
    </table>
</div>

インラインの double-for-loop タイプの取引を探しています。

編集: flim が提案したことを試しましたが、ダブル for ループに関して必要なものですが、各入力ボックスはブロック C2 (最後の配列の最後のインデックス) の値のみを保持します。私の入力ボックスは<td>タグ内に限定されているため、繰り返しが機能しているという印象を受けていますが、同じ内で毎回繰り返されているため<td>、それ自体がオーバーライドされ、最後まで機能し、次の<td>ブロック。これを止める方法の手がかりはありますか?繰り返し機能をどこに配置するかの問題のように見えますが、それはほとんど私の最初の問題に戻ります。

4

1 に答える 1

1

これは、実際の簡単なテストのためにまとめたコードです。

コントローラーには、

$scope.tempArr = [
  ["block A1", "block B1", "block C1"],
  ["block A2", "block B2", "block C2"]
];

私のhtmlには、次のものがあります。

<span ng-repeat="row in tempArr">
  <span ng-repeat="cell in row">
    <input type="text" value="{{cell}}">
  </span>
</span>

独自のフォーマットを推定します。

これがjsfiddleです。そしてテーブルともう一つ。

于 2013-06-25T19:38:27.620 に答える