2

これは単純なはずです。何らかの理由で、ng-repeat 内で ng-model を使用すると、その繰り返しループ内のすべての ng-models が更新されます。

これがコードです。何か案は? http://plnkr.co/edit/iAgrPwwBMilCyeReeLt9?p=info

ありがとう。

4

1 に答える 1

0

面白い!!!

問題は、「$scope.columns」のオブジェクトでrow.fieldをリセットしていることです

<td>
  <select ng-model="row.field" ng-options="column.title for column in columns"></select>
</td>

ここで、row.field は $scope.columns からのオブジェクトでリセットされます。1 つの行でこのオブジェクトを変更すると、他の行も同じオブジェクトを使用するため、同じ値が繰り返されます。

このモデルをrow.field.typeに次のように変更できます

<td>
    <select ng-model="row.field.type" ng-options="column.type as column.title for column in columns" ng-change="resetRow(row.field)"></select>
</td>

$scope.resetRowフィールドタイプに基づいて他のプロパティをリセットするようにコントローラーで定義します。

これが更新されたplunkerです。

ただし、問題を解決するために、オブジェクト参照の代わりに選択されたオブジェクトのコピーを返す ng-options の機能が欲しいです。

于 2014-06-07T05:17:32.453 に答える