2016-05-31 5 views
0

Ich habe etwas in meinem JavaScript-Code konfrontiert, die ich es einen Fehler nennen, aber ich glaube, es ist technisch ein Feature! Also habe ich eine json-Entität, ich erstelle eine neue und vergleiche sie mit der ersten. Nun, jede Änderung, die ich am zweiten mache, wird auch auf dem ursprünglichen geändert! HierSo erstellen Sie eine Kopie eines Objekts, das nicht mit dem Original verbunden ist

ist die JSfiddle von einfachen Beispiel, das ich geschaffen haben: https://jsfiddle.net/Lt7aP/2736/

angesichts der Code:

$scope.a = { 
    name: "mike", 
    age: 10 
}; 

$scope.b = $scope.a; 

$scope.b.name = "john"; 

sollte nicht A.Name sein "mike" und nur b.name werden "john" ? Warum passiert es beiden?

+1

https://docs.angularjs.org/api/ng/function/angular.copy –

+1

Sie haben nicht eine "json Einheit" haben, nebenbei bemerkt. Du hast ein Objekt, schlicht und einfach. –

Antwort

4

Dies ist definitiv kein Fehler. Sie haben $scope.b als Referenz zugewiesen. Da, $scope.b ändert sich, so wird $scope.a.

Sie sollten angular.copy für verschiedene Referenzen verwenden.

$scope.b = angular.copy($scope.a); 

Fiddle here

Verwandte Themen