我有一个对象数组,我可以克隆"行" (对象)填充数组。它可以工作但是当我修改任何值时,数组的所有对象都会更新。
TL; DR :克隆的行必须具有独立的值
<ul>
<li ng-repeat="comment in comments track by $index">
<input type="text" ng-model="comment.text">
<button type="button" ng-click="cloneRow(comment)">Clone this row</button>
</li>
</ul>
JS:
$scope.comments = [
{ text: 'test' }
];
$scope.cloneRow = function(comment){
$scope.comments.push(comment);
};
当前案例:
需要案例:
以下是 plunkr 。
答案 0 :(得分:7)
使用angular.copy()
创建深层副本或克隆实际对象引用:
$scope.comments.push(angular.copy(comment));
angular.copy()
创建原始对象的克隆并更新副本而不是实际对象。
答案 1 :(得分:0)
似乎你有对象的引用,你必须复制,而不是引用你的对象。
使用angular.copy()
复制新对象中的对象attr值,而不是复制此引用