Javascript 角度$scope变量自行更新
我有两个变量。但是更新1会导致另一个也更新。有人能解释一下这里发生了什么吗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)
$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()的文档/示例。这就是我需要的!不客气。考虑将问题标记为答案;