angularjs - kopiert bestimmte Eigenschaften von einem Objekt in ein anderes

7

Ich habe einen Controller wie folgt:

%Vor%

Jetzt in der Funktion $scope.update ; Ich möchte etwas schreiben, das ' nur ' firstname , middlename und lastname von $scope.Profile bis $scope.BillingDetails .

kopieren soll

Ich habe angular.copy und angular.extend versucht, aber

  • angular.extend verbindet $scope.BillingDetails und $scope.Profile . Also bekomme ich email und cellphone Eigenschaften in $scope.BillingDetails as gut - was ich nicht will.

  • angular.copy wird überschrieben $scope.BillingDetails und ich verliere addressline , city und zipcode von $scope.BillingDetails - was ich nicht will.

Was ich möchte, dass meine update -Funktion tut, ist, dass $scope.BillingDetails unter Objekt gesetzt werden soll:

%Vor%

Dieses Szenario ist nur ein Beispiel. Um die Länge meiner Frage zu verkürzen, habe ich nur 5-6 Eigenschaften erwähnt. In der Tat muss ich mit mehr als 20 Eigenschaften umgehen und alle sind dynamisch. Es funktioniert also nicht, wenn ich die Eigenschaften firstname , middlename und lastname von Profile bis BillingDetails einzeln kopiere. Was kann ich tun?

    
Ruchir Gupta 13.10.2014, 12:36
quelle

3 Antworten

12

Vielleicht hast du Glück mit so etwas:

%Vor%

bottle

    
JcT 13.10.2014, 13:21
quelle
4

Einfach. Ordne sie einfach so zu:

%Vor%

Ich kann mir wirklich keine einfachere Methode vorstellen, ein paar Eigenschaften von einem Objekt auf ein anderes zu kopieren.

Da Sie mehr als 3 Eigenschaften kopieren müssen, können Sie Folgendes versuchen:

%Vor%

Oder übergeben Sie das Array als Parameter:

%Vor%     
Cerbrus 13.10.2014 12:40
quelle
3

Tatsächlich versuchen Sie BillingDetails mit Werten von Profile zu aktualisieren, für Eigenschaften, die beide gemeinsam haben, richtig?

Wenn Sie die Standardwerte von BillingDetails mit null anstelle von undefined ändern können, können Sie diesen Code versuchen:

%Vor%     
Tip-Sy 13.10.2014 12:52
quelle