我有一个像这样的控制器:
CheckoutController = function() {
$scope.Profile = {
firstname : 'Ruchir',
middlename : 'Shakun',
lastname : 'Gupta',
email : '[email protected]',
cellphone : '9876543210'
}
$scope.BillingDetails = {
firstname : undefined,
middlename : undefined,
lastname : undefined,
addressline : undefined,
city : undefined,
zipcode : undefined
}
$scope.update = function() {
// I want to write some awesome code here as explained below
}
}
现在,在$scope.update
函数中;我想写的东西,应该复制“唯一的共同特性”,即firstname
,middlename
和lastname
从$scope.Profile
到$scope.BillingDetails
。
我尝试过angular.copy
,angular.extend
但是
angular.extend
合并$scope.BillingDetails
和$scope.Profile
。所以,我得email
和cellphone
在性能$scope.BillingDetails
以及-我不想要什么。
angular.copy
覆写$scope.BillingDetails
和我输了addressline
,city
而且zipcode
从$scope.BillingDetails
-我不想要什么。
我要我的update
函数做的是使它$scope.BillingDetails
等于下面的对象:
{
firstname : 'Ruchir',
middlename : 'Shakun',
lastname : 'Gupta',
addressline : undefined,
city : undefined,
zipcode : undefined
}
这种情况只是一个例子。为了缩短我的问题的长度,我只提到了5-6个属性。实际上,我必须处理20多个属性,并且所有属性都是动态的。所以它不会复制一个接一个性质为我工作firstname
,middlename
并lastname
从Profile
到BillingDetails
。我能做什么?
您可能会遇到这样的运气:
$scope.update = function() {
_update($scope.Profile, $scope.BillingDetails);
}
function _update(srcObj, destObj) {
for (var key in destObj) {
if(destObj.hasOwnProperty(key) && srcObj.hasOwnProperty(key)) {
destObj[key] = srcObj[key];
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句