angularjs – 扩展递归
发布时间:2020-12-17 08:25:21 所属栏目:安全 来源:网络整理
导读:我想扩展一些属性递归(aka。deep copy)。 很像jQuery。我不包括jquery只有b / c的一件事。 jQuery.extend( true,target,object1 ) 有没有什么优雅的方式,你知道这是用简单的javascript或angularjs? 更新 请看看,尝试完成相同的结果 http://plnkr.co/edit/
我想扩展一些属性递归(aka。deep copy)。
很像jQuery。我不包括jquery只有b / c的一件事。 jQuery.extend( true,target,object1 ) 有没有什么优雅的方式,你知道这是用简单的javascript或angularjs? 更新 我没有看到.copy(),但“属性(对象)被删除”
这是一个基于angular.extend函数的extendDeep函数。如果您将其添加到您的$范围内,则可以调用
$scope.meta = $scope.extendDeep(ajaxResponse1.myMeta,ajaxResponse2.defaultMeta); 并得到您正在寻找的答案。 $scope.extendDeep = function extendDeep(dst) { angular.forEach(arguments,function(obj) { if (obj !== dst) { angular.forEach(obj,function(value,key) { if (dst[key] && dst[key].constructor && dst[key].constructor === Object) { extendDeep(dst[key],value); } else { dst[key] = value; } }); } }); return dst; }; 注意:该函数具有从稍后参数复制到早期参数的副作用。要简单的解决这个副作用,你可以将dst [key] = value改为dst [key] = angular.copy(value)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |