2017-01-11 63 views
0

我在控制器:

$http.post("./post", { get: id }) 
    .then(function(res) { 
     $scope.acct = res.data; 
     $scope.orig = calcThis(res.data); 
    }); 

說明:此$ http.post之後,我遇到下列情況:

$scope.acct.post_data 

$scope.orig.post_data 
$scope.orig._1 
$scope.orig._2 
$scope.orig._3 

....那裏的孩子作爲calcThis()函數的結果,元素_1,_2,_3被賦值。

不過,我代替:

$scope.acct.post_data 
$scope.acct._1 
$scope.acct._2 
$scope.acct._3 

$scope.orig.post_data 
$scope.orig._1 
$scope.orig._2 
$scope.orig._3 

Plunker這裏:https://plnkr.co/edit/InQkQXDkmhBftkD59CuB?p=preview

說明&問題:雖然$ scope.acct和$ scope.orig使用相同後期編輯的數據,它們在DOM上有不同的用途。

  • 爲什麼$ scope.acct繼承$ scope.orig時,他們是不同的變量/對象(什麼是正確的術語)?
  • 如何讓他們在Angular中有兩個獨立的變量/對象?

謝謝。我感謝你的回答!

回答

0

在Javascript對象通過引用傳遞。因此origacct會引用同一個對象。您將需要使用angular.copy複製該對象。

$scope.orig = calcThis(angular.copy(res.data));