2015-03-11 5 views
6

Ich bin von diesem verblüfft. Im eckigen api und auf github gibt es eine merge-Funktion, die eine tiefe Zusammenführung von zwei Objekten durchführt, im Gegensatz zu extend(), das eine flache Kopie erstellt.Angular 1.3.14 merge (dst) existiert nicht

Ich benutze googles cdn für angular, und Aufruf angular.extend ('param') funktioniert, aber Aufruf angular.merge ('param') gibt undefined Funktion. Vergleicht man die angular.js von Google und die von eckigen sich selbst, Merge existiert auf dem eckigen, aber nicht in Google.

Irgendwelche Ideen oder jemand anderes mit diesem Problem. Könnte ich Google irgendwie wissen lassen?

Antwort

11

Fühlen Sie sich wie ein Narr, es ist nur in der Beta-Version 1.4 verfügbar Hoffe, dass dies immer noch in der Lage ist, jemanden zu helfen, der sich auch fragt. :)

kopiert es auch von der letzten Version:

//Leave out the {} to directly change src 
function merge(src, newObj) { 
    return angular.extend({},src, newObj); 
} 
+1

der Tat. Ihre Antwort hat mir sehr geholfen. Allerdings habe ich eine benutzerdefinierte Funktion geschrieben, indem Sie den Code für die Zusammenführungsfunktionalität kopiert haben. Sie können ihn in den älteren Versionen von angularjs verwenden - http://stackoverflow.com/a/29003438/548308. Durch die können Sie Ihre eigene Antwort annehmen :) – Mathankumar

+0

Nur zu beachten, ist dies jedoch kein Polyfill/Ersatz für 'angular.merge'. – JimmyBoh

+2

Dies ist nicht korrekt. Zusammenführen und erweitern sind unterschiedlich. 'angle.xtend' unterstützt keine rekursive Zusammenführung (tiefe Kopie) - deshalb müssen Sie' angular.merge' verwenden, wenn Sie eine tiefe Kopie Ihres Objekts erstellen wollen. –

Verwandte Themen