AngularJS API之copy深拷贝

    阅读目录

  • 使用时需要注意下面几点:
  • 下面看看使用样例:

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

回到顶部

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

  • 如果只有一个参数(没有指定拷贝的对象),则返回一个拷贝对象
  • 如果指定了destination,则会深拷贝对象复制给destination
  • 如果source是null或者undefined,那么会直接返回source
  • 如果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>

时间: 2024-12-22 00:23:36

AngularJS API之copy深拷贝的相关文章

《Effective Objective-C 2.0》—(第15-22条)—接口与API设计、深拷贝、浅拷贝

第15条:用前缀避免命名空间冲突 Objective-C没有其他语言内置的命名空间(namespace)机制.如果发生命名冲突程序连接时候,出现以下错误: duplicate symbol _OBJC_METACLASS_$_EOCTheClass in: build/something.o build/something_else.o duplicate symbol _OBJC_CLASS_$_EOCTheClass in: build/something.o build/something

搭建angularjs API文档站点

提供一个国内可以访问的 angularjs API文档站点 http://i.frllk.com/ 文档直接在 github 上下载的: https://github.com/angular-cn/ng-docs-en 空间是万网赠送的 2年时间,本来也没有用处所幸共享出来当成api站点用 另外提供一个免FQ上Google的网站 http://www.glgoo.com 好了现在开始抒发我内心挤压已久的不满了. 墙! 墙! 墙 到处墙 你们到底有多少见不得光的事情.

【16】AngularJS&#160;API

AngularJS API API 意为 Application Programming Interface(应用程序编程接口). AngularJS 全局 API AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合,如: 比较对象 迭代对象 转换对象 全局 API 函数使用 angular 对象进行访问. 以下列出了一些通用的 API 函数: API 描述 angular.lowercase() 转换字符串为小写 angular.uppercase() 转换字

AngularJS API之$injector ---- 依赖注入

    阅读目录 推断式注入 标记式注入 内联式注入 $injector常用的方法 样例代码 在AngularJS中也有依赖注入的概念,像spring中的依赖注入,但是又有所不同.Spring中使用构造注入或者设值注入的方式,还需要做一些额外的操作,但是angular中只需要在需要的地方声明一下即可,类似模块的引用,因此十分方便.参考:[angular api doc] (http://docs.angularjs.cn/api/auto/service/$injector) 回到顶部 推断式注

copy 深拷贝和浅拷贝的区别

第一步我们首先创建一个Person的类,Person.h 1 #import <Foundation/Foundation.h> 2 //要实现copy必须遵守NSCopying或者NSMutableCopying协议,这里面有一个必须实现的协议copyWithZone: 3 @interface Person : NSObject<NSCopying> 4 @property(retain,nonatomic)NSString *name; 5 6 @property(copy,

Angularjs API

$scope: var myapp = angular.module('myapp', []); myapp .controller('parent', function ($scope,$timeout) { $scope.$broadcast('you');//已经发出广播 $scope.$on('you', function (event) { console.log(event);//广播已经发出才进行监听,所以不会执行这一行 }); }) .controller('child', fu

AngularJS API之bootstrap启动

通过绑定来进行angular的初始化,会把js代码侵入到html中,但是对于新手使用来说,还是足够了! <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&

copy&amp;mutableCopy 浅拷贝(shallow copy)深拷贝 (deep copy)

本文来自 这里,原文作者微博MicroCai 概念 对象拷贝有两种方式:浅复制和深复制.顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针:深复制是直接拷贝整个对象内存到另一块内存中. 一图以蔽之 再简单些说:浅复制就是指针拷贝:深复制就是内容拷贝. 集合的浅复制 (shallow copy) 集合的浅复制有非常多种方法.当你进行浅复制时,会向原始的集合发送retain消息,引用计数加1,同时指针被拷贝到新的集合. 现在让我们看一些浅复制的例子: NSArray *shallowCop

AngularJS API之toJson 对象转为JSON

    阅读目录 方法讲解 样例参考 toJson()能把对象序列化为json 回到顶部 方法讲解 这个方法最多支持2个参数: angular.toJson(obj, pretty); obj 是想要转换的对象, pretty 可以调节格式化的样式,按照API的介绍这个是空格的个数.(不过在控制台,空格的个数是一样的,差别还在研究) 回到顶部 样例参考 <html> <head> <meta http-equiv="Content-Type" conten