gpt4 book ai didi

javascript - Angular $scope 变量自行更新

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:08 25 4
gpt4 key购买 nike

我有两个变量。但是更新 1 会导致另一个也更新。谁能解释这里发生了什么?

$scope.pages = [];
$scope.pagesSave = [];

var functionName = function(){

$service.doThing1().then(function(res1){
$scope.pagesSave = res1;
console.log(res1)
$service.doThing2().then(function(res2){
$scope.pages = $service.formatThings(res2, res1);
console.log($scope.pages)

}, function(err){});
}, function(err){});

$scope.pages 应该是最终产品

$scope.pagesSave应该是预先格式化的数据

但是,控制台记录这些变量显示它们是相同的。

更奇怪的是,执行 $service.doThing1() 后立即控制台日志显示“res1”具有正确的长度,但仅包含 $scope.pages 中的数据,如此图所示。

即使格式化功能尚未发生,也缺少 2 个

enter image description here

有人知道这里发生了什么吗?

如果有帮助的话,我正在使用 Chrome 来记录控制台日志

最佳答案

我认为在您的formatThings中您发送res1作为您的函数的结果,这意味着$scope.pagesSave将等于 res1 等于 $scope.pages

因此,解决方案是使用 angular.copy() 创建 res1 的深拷贝,并使用创建的对象来清理它。您可以分享您的formatThings吗?

关于javascript - Angular $scope 变量自行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44247232/

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