Ich habe folgende JavaScript/Schräg Code:Angular JS: angular.copy stürzt der Browser, wenn ein Objekt ein anderes Objekt verweist
var a = {};
var b = {};
a.ref = b;
b.ref = a;
angular.copy(a);
Wenn angular.copy
Brände, der Browser abstürzt. Ich nehme an, dies liegt daran, dass die Kopierfunktion eine tiefe Kopie macht, und wenn sie beginnt, die Referenz von b zu kopieren, geht sie in b und möchte dann ihre Referenz von a kopieren, um so eine zirkuläre Kopie zu erstellen, die dies niemals tun wird Ende.
Ist diese Annahme richtig? Wenn ja, gibt es eine Möglichkeit, dies zu vermeiden? Ich gehe davon aus, dass die Antwort die Art und Weise verändern wird, wie meine Daten aussehen, aber ich bin neugierig, die Gedanken einer anderen Person zu hören.
Interessant. Danke, dass Sie meine Vermutung geklärt haben. Klingt wie die Struktur meiner Daten sollte nur geändert werden ... – incutonez
Ist das, wie Sie es behoben? Konnten Sie es mit einer Zirkelreferenz arbeiten lassen? – testing123
Wir haben es behoben, indem wir unser Datenmodell überarbeitet haben. Anstatt dem Kindknoten das eigentliche Elternobjekt zu geben, fügten wir jedem Kind einen Kindknoten und eine Elternknoten-ID hinzu. Wenn wir Enkelkinder erstellen, ist es einfach, die Eltern-ID weiterzugeben. – incutonez