gpt4 book ai didi

javascript - 复制数组的元素并推送它会导致 "Duplicates in a repeater are not allowed."错误 - Angular

转载 作者:行者123 更新时间:2023-12-02 15:39:11 25 4
gpt4 key购买 nike

我有一个复制按钮,其中包含:

$scope.copyHeadline = function (headline) {
var headlineCopy = headline;
var current_time = Date.now();

headlineCopy.label = headline.label + ' (Copy ' + current_time + ')';
$scope.headlineList.push(headlineCopy);
}

但我收到“不允许在转发器中重复”错误。我注意到数组或列表中的每个元素都有某种隐藏属性,例如:

$$hashKey: "object:135"

我很确定它正在重复但我无法更改?

我读到我可以使用:

track by $index

但最终发生的情况是,当我按下“复制”按钮时,它也会编辑我正在复制的原始元素,因此不起作用......

我还考虑过创建一个全新的元素并编写一个函数,将每个元素复制到一个新的元素中。但是这个类本身就有几个具有大量属性的子类。所以我想我只是想看看在采用这种方法之前是否有更容易的方法。谢谢!

最佳答案

发生这种情况是因为仅将原始对象的引用分配给不同的变量不会生成它的副本。它只是复制对同一对象的引用。

AngularJS copy documentation

用途:

  var headlineCopy = angular.copy(headline);

这将制作对象的深拷贝。

关于javascript - 复制数组的元素并推送它会导致 "Duplicates in a repeater are not allowed."错误 - Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com