2017-05-17 1 views
1

J'ai un objet Parse (bien, un tableau d'objets d'analyse). Je veux faire un clone des objets mais tout ce que j'essaye échoue ... en changeant les attributs de l'objet original, cela change aussi l'attribut correspondant du clone. J'ai essayé d'utiliser Parse.Object.clone(), en créant un nouveau tableau d'objets, en changeant en JSON et en faisant un clone profond mais rien ne fonctionne. Après quelques recherches, je suis tombé sur this et this mais cela offre une vraie solution.Objet Clone Parse Server

N'existe-t-il pas un bon moyen de cloner des objets Parse et de les séparer complètement?

Je veux essentiellement avoir un bouton «Annuler» qui reviendrait aux versions clonées et non sauvegardé.

Répondre

2

Parse.Object.clone Retourne une copie peu profonde. Pour une copie complète (objets complètement indépendants) J'ai écrit et utilisé ce code:

var originalObject = ... 
var objectJSON = originalObject.toJSON(); 
delete objectJSON.objectId; // force it to be a new DB object if you save it 
var twin = new Parse.Object(object.className); 
twin.set(objectJSON); 

À mon avis, une méthode Parse.Object.deepClone serait bien ...

+0

Merci, changer l'ID était la clé pour que cela fonctionne.J'ai fini par ajouter un préfixe à l'ID à cloner, puis retirer l'ID si je dois revenir à la version clonée. – SimpleOne

0

Que se passe-t-il avec Parse.Object.clone()? Cela semble être ce que tu veux.

le SDK iOS (et probablement le androïde) a une méthode de retour sur les objets à réinitialiser à la dernière fois qu'il a été enregistré/récupéré. Gardez à l'esprit que pour les objets en javascript, les transmettre dans des fonctions les traite comme des références, plus ou moins, de sorte que les changements dans une fonction changeront l'objet transmis. Parfois utile et parfois ennuyeux. Si Parse.Object.clone() ne fonctionne pas, Ma suggestion suivante, bien que gênante, serait de créer un nouvel objet shell et de l'extraire/interroger pour l'objet si vous avez besoin d'inclure quand vous devez "réinitialiser" " les données.

+0

J'ai fait un clone, puis manipulé l'objet original et trouvé que le clone avait aussi changé !! D'après ce que j'ai lu, si les objets ont le même identifiant, alors l'analyse traite les attributs comme communs. Je suppose que l'interrogation est la voie à suivre ... :( – SimpleOne