2016-07-19 5 views
1

Ich möchte kopieren die Werte eines Objekts (Element) in ein anderes (editedItem) kopieren, um es in ein Formular zu setzen und zu ändern, während das ursprüngliche Objekt unverändert angezeigt wird.Werte von Objekten kopieren, ohne sie zu binden

Mit diesem Ansatz werden die beiden Objekte gebunden, Element ändert sich, wenn das editedItem geändert wird. Gibt es eine Möglichkeit, die Werte einfach zu kopieren, ohne die Objekte zu binden?

+1

http://stackoverflow.com/questions/34201483/deep-clone-in-typescript-preserving-types –

+0

Dies sollte ein Angular2-Syntax-Thing als eine Typoskript Sache sein. – Seltsam

+1

Nein sollte es nicht. Ich sehe keinen Grund warum und es ist viel zu kompliziert und jeder will etwas anderes. –

Antwort

6

Sie können JSON.parse (JSON.stringify()) verwenden, wenn Sie sich nicht um die Typen kümmern. Hier

ein Beispiel:

HTML

<a (click)="copy()">Edit</a> 

TS

copy() { 
    this.editedItem = JSON.parse(JSON.stringify(this.item)) 
} 
0

Nun, mir gewünscht hätte dies ohne eine zusätzliche Funktion getan haben, aber das funktioniert.

<a (click)="toEditItem(item)">Edit</a> 

    toEditItem(item) { 
     this.editItem= Object.create(item); 
    } 
Verwandte Themen