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 相关文章推荐
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 Javascript
JavaScript 设计模式 安全沙箱模式
Sep 24 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
Apr 19 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
JavaScript面向对象编写购物车功能
Aug 19 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
vue组件与复用详解
Apr 08 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
Nov 04 Javascript
jQuery弹框插件使用方法详解
May 26 jQuery
js利用iframe实现选项卡效果
Aug 09 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
PHP 文件类型判断代码
2009/03/13 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
PHP实现简单登录界面
2019/10/23 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
cookie的secure属性详解
2015/04/08 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
python中logging库的使用总结
2017/10/18 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
法学毕业生自荐信
2013/11/13 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
高中历史教学反思
2016/02/19 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电