http://embed.plnkr.co/10dTMNIFCoqZW8jMez4R/preview
您可以点击加号添加一行。
如您所见,每个范围将填充任何行,其中包含放入其中一个字段的任何值。
当我明确提到某一特定行时,怎么可能呢?
<input class="rt-input" type="text" ng-model="realm.rows[row][heading].content">
答案 0 :(得分:1)
发生这种情况的原因是每个新行都是这样创建的:
var protoRow = $scope.realm.rows[0];
...
$scope.realm.rows[rowCount] = protoRow;
由于$scope.realm.rows[0]
(因此protoRow
)是一个对象,因此它通过引用传递。因此,每个新表行都绑定到realm.rows
中的同一对象。
您可以创建对象的新副本,而angular.copy()
只是该工作的工具:
var protoRow = $scope.realm.rows[0];
...
$scope.realm.rows[rowCount] = angular.copy(protoRow);
另请参阅此 modified, working demo 。
答案 1 :(得分:1)
我修改了你的plnkr以使它工作。 http://plnkr.co/edit/D98tLpXEZgV63GjUTJbD?p=preview
问题是你的所有行都指的是同一个对象。
所以我只是复制你的&#34;原型行&#34;与angular.copy()
var protoRow = angular.copy($scope.realm.rows[0]);
和
$scope.realm.rows[rowCount] = angular.copy(protoRow);