Wie behalte ich den Prototyp mit angular.copy ()?

8

Ich benutze Angular.js 1.3.x. In früheren Versionen von Angular (einschließlich 1.3.0-beta5) würde der folgende Code die Eigenschaften des Prototyps direkt in das neue Objekt kopieren:

%Vor%

In Angular.js 1.3.0+ sind die Eigenschaften des Prototyps jedoch vollständig verloren, obwohl Migrationsleitfaden für 1.2 bis 1.3 sagt:

  

Damit wird angular.copy so geändert, dass der Prototyp des ursprünglichen Objekts auf das kopierte Objekt angewendet wird. Zuvor würde angular.copy Eigenschaften der Prototypkette des Originalobjekts direkt auf das kopierte Objekt kopieren.

Wie behalte ich die Eigenschaften vom Prototyp?

    
Johann 03.02.2015, 18:35
quelle

1 Antwort

12

Während der Kommentar im Commit, das mit verknüpft ist, im Migrationsleitfaden heißt:

  

Dies ändert angular.copy , so dass es den Prototyp des Originals anwendet   Objekt für das kopierte Objekt.

Dies gilt nur, wenn das Zielargument für angular.copy(source, [destination]); nicht angegeben ist. Wenn destination angegeben wird, werden nur die direkten Eigenschaften des Objekts kopiert .

Die Lösung besteht darin, nur das Objekt source für die Funktion angular.copy bereitzustellen, wobei der Parameter destination weggelassen wird:

%Vor%     
Johann 03.02.2015 18:35
quelle

Tags und Links