AngularJs angular.bind、angular.bootstrap、angular.copy

angular.bindbootstrap

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

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

self:object  对象; fn的上下文对象,在fn中能够用this调用函数

fn:function; 绑定的方法学习

args:传入fn的参数测试

使用代码: this

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函数的参数了。spa

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

angular.bootstrapcode

使用这个功能来手动启动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 逐个的学习而且进行翻译,而后写能运行成功的代码,并把学习过程进行整理记录及分享... 

相关文章
相关标签/搜索