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


Posted in Javascript onSeptember 14, 2016

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深拷贝详解及实例

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

Javascript 相关文章推荐
javascript 获取图片颜色
Apr 05 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
Aug 31 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
10道典型的JavaScript面试题
Mar 22 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
浅谈vue.js中v-for循环渲染
Jul 26 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
AngularJS $injector 依赖注入详解
Sep 14 #Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
Sep 14 #Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 #Javascript
AngularJs ng-route路由详解及实例代码
Sep 14 #Javascript
js实现文字截断功能
Sep 14 #Javascript
jQuery版AJAX简易封装代码
Sep 14 #Javascript
原生JS实现首页进度加载动画
Sep 14 #Javascript
You might like
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
基于mysql的论坛(7)
2006/10/09 PHP
用ODBC的分页显示
2006/10/09 PHP
PHP 输出缓存详解
2009/06/20 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
最新计算机专业自荐信
2013/10/16 职场文书
化学教育专业自荐信
2014/07/04 职场文书
离职报告格式
2014/11/04 职场文书
校园运动会广播稿
2015/08/19 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
jquery插件实现搜索历史
2021/04/24 jQuery
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL
MySQL深分页问题解决思路
2022/12/24 MySQL