angular.bind

返回一个调用self的函数fn(self代表fn里的this).可以给fn提供参数args(*).这个功能也被称为局部操作,以区别功能。

格式:angular.bind(self,fn,args);

self:object  对象; fn的上下文对象,在fn中可以用this调用

fn:function; 绑定的方法

args:传入fn的参数

使用代码: 

var obj = { name: "Any" };
var fn = function (Adj) {
console.log(this.name + "is a boy!!! And he is " + Adj + " !!!");
  };
var f = angular.bind(obj, fn, "handsome");
f();//Any is a boy!!! And he is handsome!!!
var t = angular.bind(obj, fn);
t("ugly");// Any is a boy!!! And he is ugly!!!

bind顾名思义绑定的意思,那么假如我们要把A绑到B上,那么必须又有绑定的东西和被绑定的东西。这里需要的就一个对象和一个函数。那么怎么绑?本兽的理解是把对象“绑”到函数的this上去执行,这时候fn的this就等于obj了,至于第三个参数,可有可无,看需求,如果函数需要传入参数,那么我们可以把angular.bind的第三个参数放上去,这就是传入fn函数的参数了。

案例中第一种写法是定义绑定的时候就把fn所需的参数传进去了,调用的时候直接用,而案例中第二种写法是先绑定,在调用执行的时候再给fn传参,效果是一样的...

angular.bootstrap

使用这个功能来手动启动angular应用。基于ngScenario的端对端测试不能使用bootstrap手动启动,需要使用ngApp.

Angular会检测应用在浏览器是否已启动并且只允许第一次的启动,随后的每次启动都将会导致浏览器控制台报错.

这可以防止应用出现多个Angular实例尝试在Dom上运行的一些奇异结果.

格式:angular.bootstrap(element,[modules]);

element:Dom元素,angular应用启动的根节点

modules:数组,angular的应用程序模块

使用代码:

  <div id="ngApp">
<div ng-controller="testCtrl as ctrl">
{{ctrl.value}}
</div>
</div>
  (function () {
angular.module("Demo", [])
.controller("testCtrl", testCtrl);
function testCtrl() {
this.value = "Hello World";
}
angular.bootstrap(document.getElementById("ngApp"), ["Demo"]);
}());

一般来说,我们写ng程序,都会在页面Dom元素上写ngApp指令用来启动Angular程序,但是也可能出现一些特殊情况需要我们在启动之前干些什么或者需要我们手动启动应用程序,这时候angular.bootstrap就派的上用场了。

angular.copy

针对对象或数字创建一个深层的拷贝。

格式:angular.copy(source, [destination]);

source:被拷贝的对象

destination:接收的对象 [注意:参数类型是对象或数组]

使用代码:

var objA, objD = []; //objA:undefined objD:[]
var objB = { text: "Hello World" };
var objC = {text:"Hai",value:"Test"};
objA = angular.copy(objB); // objA:{ text:"Hello World"} objB:{ text:"Hello World"}
angular.copy(objC, objD);// objC:{text: "Hai", value: "Test"} objD:[text: "Hai", value: "Test"]

本兽对Angular API 逐个的学习并且进行翻译,然后写能运行成功的代码,并把学习过程进行整理记录及分享...

最新文章

  1. 从架构层面谈web加载优化(个人整理)
  2. MySQL练习题
  3. React-Router学习整理
  4. MySQL3:索引
  5. CAShaperLayer的应用
  6. 【iCore3 双核心板】例程十九:USBD_MSC实验——虚拟U盘
  7. 浅析Android中ndk-build支持的参数
  8. text-align:-moz-center与text-align:-webkit-center区别与用法
  9. 【PHPsocket编程专题(实战篇③)】构建基于socket的HTTP请求类
  10. Cocos2d-x在win32,android和IOS下的文件读写问题
  11. web.py 学习(-)Rocket web框架
  12. postgres-xl 集体搭建(1)
  13. JVM(三)内存回收(一)
  14. Android开发——Fragment的简单使用总结
  15. 一、Python学习之路
  16. Spring Boot 菜鸟教程 application.properties 常用配置
  17. axios 进行类库封装
  18. iOSPush自动隐藏tabbar
  19. Codevs3008 加工生产调度
  20. 视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(1)

热门文章

  1. ICSharpCode.SharpZipLib
  2. php基础入门
  3. 深入理解计算机系统(2.8)---浮点数的舍入,Java中的舍入例子以及浮点数运算(重要)
  4. P和NP问题
  5. Jmeter测试工具使用
  6. 1025基础REDIS
  7. viewSub惰性装载器
  8. C# 多线程join的用法,等待多个子线程结束后再执行主线程
  9. Zookeeper总结
  10. ITEM M6 自增(INCREMENT)、自减(DECREMENT)操作符前缀形式与后缀形式的区别