Javascript 角度$scope变量自行更新

Javascript 角度$scope变量自行更新,javascript,angularjs,Javascript,Angularjs,我有两个变量。但是更新1会导致另一个也更新。有人能解释一下这里发生了什么吗 $scope.pages = []; $scope.pagesSave = []; var functionName = function(){ $service.doThing1().then(function(res1){ $scope.pagesSave = res1; console.log(res1) $service.doThing2().then(function(res2)

我有两个变量。但是更新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丢失,即使格式化功能尚未执行

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


如果有帮助的话,我正在使用Chrome作为控制台日志。我认为在
格式中,你发送
res1
是因为你的函数,这意味着
$scope.pagesSave
将等于
res1
,这将等于
$scope.pages


因此,解决方案是使用
angular.copy()
创建
res1
的深度副本,并使用创建的对象清理它。你能分享你的
格式吗?

太多的未知数…谢谢你!尝试了这一点,并查看了angular.copy()的文档/示例。这就是我需要的!不客气。考虑将问题标记为答案;