Angularjs Angular JS(v1)-$scope太聪明了?
我在控制器中有:Angularjs Angular JS(v1)-$scope太聪明了?,angularjs,variables,scope,Angularjs,Variables,Scope,我在控制器中有: $http.post("./post", { get: id }) .then(function(res) { $scope.acct = res.data; $scope.orig = calcThis(res.data); }); 说明:在这篇$http.post之后,我预计会出现以下情况: $scope.acct.post_data 及 ..其中子元素_1、_2、_3作为函数calcThis()的结果进行赋值 然而,我
$http.post("./post", { get: id })
.then(function(res) {
$scope.acct = res.data;
$scope.orig = calcThis(res.data);
});
说明:在这篇$http.post之后,我预计会出现以下情况:
$scope.acct.post_data
及
..其中子元素_1、_2、_3作为函数calcThis()的结果进行赋值
然而,我得到的却是:
$scope.acct.post_data
$scope.acct._1
$scope.acct._2
$scope.acct._3
及
普朗克:
解释与问题:尽管$scope.acct和$scope.orig使用相同的post-ed数据,但它们在DOM上有不同的用途
- 为什么$scope.acct继承$scope.orig,而它们是不同的变量/对象(正确的术语是什么)李>
- 如何使它们成为两个独立的变量/对象
多谢各位。我感谢你的回答 Javascript中的对象是通过引用传递的。因此
orig
和acct
将引用同一个对象。您需要使用创建该对象的副本
$scope.orig = calcThis(angular.copy(res.data));
$scope.orig.post_data
$scope.orig._1
$scope.orig._2
$scope.orig._3
$scope.orig = calcThis(angular.copy(res.data));