AngularJS API之copy深拷贝详解及实例

 更新时间:2016年09月14日 14:56:31   作者:xingoo  
这篇文章主要介绍了AngularJS API之copy深拷贝详解及实例的相关资料,需要的朋友可以参考下

angular提供了一个可以复制对象的api——copy(source,destination),它会对source对象执行深拷贝。

使用时需要注意下面几点:

  1. 如果只有一个参数(没有指定拷贝的对象),则返回一个拷贝对象
  2. 如果指定了destination,则会深拷贝对象复制给destination
  3. 如果source是null或者undefined,那么会直接返回source
  4. 如果source就是desitination,那么会报错。

下面看看使用样例:

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
</head>
<body ng-app="copyExample">
  <div ng-controller="ExampleController">
    <form novalidate class="simple-form">
      Name: <input type="text" ng-model="user.name" /><br />
      E-mail: <input type="email" ng-model="user.email" /><br />
      Gender: 
      <input type="radio" ng-model="user.gender" value="male" />
      male
      <input type="radio" ng-model="user.gender" value="female" />
      female
      <br />
      <button ng-click="reset()">RESET</button>
      <button ng-click="update(user)">SAVE</button>
    </form>
    <pre>form = {{user | json}}</pre>
    <pre>master = {{master | json}}</pre>
  </div>

  <script>
  angular.module('copyExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.master= {};
    
    var test1;
    console.log(angular.copy(test1));//undefined
    var test3=null;
    console.log(angular.copy(test2));//undefined

    var test2 = "a";
    // console.log(angular.copy(test2,test2));//error!!

    $scope.update = function(user) {
      // Example with 1 argument
      $scope.master= angular.copy(user);
    };

    $scope.reset = function() {
      // Example with 2 arguments
      angular.copy($scope.master, $scope.user);
      console.log($scope.master);
      console.log($scope.user);
    };

    $scope.reset();
  }]);
  </script>
</body>
</html>




以上就是对AngularJS API之copy深拷贝的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

相关文章

  • angular 内存溢出的问题解决

    angular 内存溢出的问题解决

    这篇文章主要介绍了angular 内存溢出的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Angular获取手机验证码实现移动端登录注册功能

    Angular获取手机验证码实现移动端登录注册功能

    最近在使用angular来做项目,功能要求实现一是点击按钮获取验证码,二是点击登录验证表单。之前用jquery来做项目很好做,使用angular怎么实现呢?其实实现代码也很简单的,下面通过实例代码给大家介绍下,需要的朋友参考下吧
    2017-05-05
  • Angular1.x复杂指令实例详解

    Angular1.x复杂指令实例详解

    这篇文章主要介绍了Angular1.x复杂指令,结合实例形式分析了指令的使用、模板指令、指令的作用域等概念与具体使用技巧,需要的朋友可以参考下
    2017-03-03
  • 使用AngularJS中的SCE来防止XSS攻击的方法

    使用AngularJS中的SCE来防止XSS攻击的方法

    这篇文章主要介绍了使用AngularJS中的SCE来防止XSS攻击的方法,依靠合理地转码为HTML来预防跨站脚本漏洞共计,需要的朋友可以参考下
    2015-06-06
  • AngularJs 国际化(I18n/L10n)详解

    AngularJs 国际化(I18n/L10n)详解

    本文主要介绍AngularJs 国际化的知识,这里整理了详细的资料来讲解国际化,有需要的小伙伴可以参考下
    2016-09-09
  • Angular Universal服务器端渲染避免 window is not defined错误消息

    Angular Universal服务器端渲染避免 window is not&

    这篇文章主要介绍了Angular Universal服务器端渲染避免 window is not defined错误消息,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Angular Renderer (渲染器)的具体使用

    Angular Renderer (渲染器)的具体使用

    这篇文章主要介绍了Angular Renderer (渲染器)的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 详解创建自定义的Angular Schematics

    详解创建自定义的Angular Schematics

    本文对 Angular Schematics 进行了介绍,并创建了一个用于创建自定义 Component 的 Schematics ,然后在 Angular 项目中以它为模板演练了通过 Schematics 添加自定义的 Component,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • AngularJS入门教程之ng-class 指令用法

    AngularJS入门教程之ng-class 指令用法

    本文主要介绍AngularJS ng-class 指令,这里帮大家整理了ng-class资料和示例代码,学习AngularJS指令的同学可以参考下
    2016-08-08
  • Angular.JS实现无限级的联动菜单(使用demo)

    Angular.JS实现无限级的联动菜单(使用demo)

    这篇文章主要介绍了Angular.JS中实现无限级联动菜单的使用示例,本文是在之前的一篇文章的基础上进行的几个demo分享,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02

最新评论