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
.
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:
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?
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% 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:
Tags und Links javascript angularjs angularjs-directive angularjs-scope angularjs-service