2017-01-11 6 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 

....どこの子供要素_1、_2、_3は、関数calcThis()の結果として割り当てられます。

しかし、私が代わりに得た:

$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.orctは、異なる変数/オブジェクト(正しい用語は何ですか)である場合、なぜ$ scope.origを継承するのですか?
  • どのようにそれらを2つの独立した変数/オブジェクトを角度にするのですか?

ありがとうございます。私はあなたの答えをありがとう!

答えて

0

In Javascriptオブジェクトはreferenceによって渡されます。origacctは同じオブジェクトを参照します。そのオブジェクトのコピーを作成するには、angular.copyを使用する必要があります。

$scope.orig = calcThis(angular.copy(res.data)); 
関連する問題