angularjs – 扩展递归

前端之家收集整理的这篇文章主要介绍了angularjs – 扩展递归前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想扩展一些属性递归(aka。deep copy)。
很像jQuery。我不包括jquery只有b / c的一件事。
jQuery.extend( true,target,object1 )

有没有什么优雅的方式,你知道这是用简单的javascript或angularjs?

更新
请看看,尝试完成相同的结果
http://plnkr.co/edit/GHabYbyhsqtfBPtplksO?p=preview

我没有看到.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)。

原文链接:https://www.f2er.com/angularjs/145069.html

猜你在找的Angularjs相关文章