2016-08-08 18 views
0

Ich versuche, ein neues Objekt zu erstellen, das einige Standardwerte aus dem Bereich haben wird.Wie kopiert man ein Objekt und erstellt ein neues Objekt mit einem vorhandenen Json-Objekt?

Ich fand, es gibt Kopierfunktion, um neues unabhängiges Objekt zu erstellen.

angular.copy(source,destication)

Aber nicht für mich arbeiten. Ich werde nicht definiert, wenn ich ein neues Objekt trenne.

angular.copy($rootScope.answers,$rootScope.default); 
console.log($rootScope.answers); 
console.log($rootScope.default); 

https://plnkr.co/edit/BFGXr7LNAe0KvQipj9JJ?p=preview

In app.js in .run Methode ich versucht, Kopierfunktion zu verwenden. Bitte lassen Sie mich wissen, wenn ich etwas vermisse.

+1

'Object.assign ({}, Quelle)' – Tushar

+0

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

Antwort

2

Klonen ist eine Option. Unten ist ein Beispiel:

var deepClonedCopy = jQuery.extend(true, {}, originalData); 
var clonedData; 
clonedData= $.map(deepClonedCopy, function(el) { return el }); 

dieser Artikel detaillierte Erklärung zu bekommen: http://heyjavascript.com/4-creative-ways-to-clone-objects/

Zusätzliche Antwort hinzugefügt:

Sie müssen $rootScope.default={}; definieren, bevor Kopie durchzuführen.

$rootScope.default={}; 
angular.copy($rootScope.answers,$rootScope.default); 
console.log($rootScope.answers); 
console.log($rootScope.default); 

Siehe aktualisiert plnkr: https://plnkr.co/edit/hef6uSHyFRoxs33kRAS8?p=preview

Alternativ Sie dieses auch tun:

$rootScope.default = angular.copy($rootScope.answers); 
+0

Es gibt viele Möglichkeiten, es zu tun, ich versuche es in eckigen js zu erreichen. Warum funktioniert die angular.copy Funktion nicht? –

Verwandte Themen