AngularJs angular.bind、angular.bootstrap、angular.copy
angular.bind
返回一個(gè)調(diào)用self的函數(shù)fn(self代表fn里的this).可以給fn提供參數(shù)args(*).這個(gè)功能也被稱為局部操作,以區(qū)別功能。
格式:angular.bind(self,fn,args);
self:object? 對(duì)象; fn的上下文對(duì)象,在fn中可以用this調(diào)用
fn:function; 綁定的方法
args:傳入fn的參數(shù)
使用代碼:
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上,那么必須又有綁定的東西和被綁定的東西。這里需要的就一個(gè)對(duì)象和一個(gè)函數(shù)。那么怎么綁?本獸的理解是把對(duì)象“綁”到函數(shù)的this上去執(zhí)行,這時(shí)候fn的this就等于obj了,至于第三個(gè)參數(shù),可有可無(wú),看需求,如果函數(shù)需要傳入?yún)?shù),那么我們可以把a(bǔ)ngular.bind的第三個(gè)參數(shù)放上去,這就是傳入fn函數(shù)的參數(shù)了。
案例中第一種寫法是定義綁定的時(shí)候就把fn所需的參數(shù)傳進(jìn)去了,調(diào)用的時(shí)候直接用,而案例中第二種寫法是先綁定,在調(diào)用執(zhí)行的時(shí)候再給fn傳參,效果是一樣的...
angular.bootstrap
使用這個(gè)功能來(lái)手動(dòng)啟動(dòng)angular應(yīng)用。基于ngScenario的端對(duì)端測(cè)試不能使用bootstrap手動(dòng)啟動(dòng),需要使用ngApp.
Angular會(huì)檢測(cè)應(yīng)用在瀏覽器是否已啟動(dòng)并且只允許第一次的啟動(dòng),隨后的每次啟動(dòng)都將會(huì)導(dǎo)致瀏覽器控制臺(tái)報(bào)錯(cuò).
這可以防止應(yīng)用出現(xiàn)多個(gè)Angular實(shí)例嘗試在Dom上運(yùn)行的一些奇異結(jié)果.
格式:angular.bootstrap(element,[modules]);
element:Dom元素,angular應(yīng)用啟動(dòng)的根節(jié)點(diǎn)
modules:數(shù)組,angular的應(yīng)用程序模塊
使用代碼:
<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"]);}());一般來(lái)說(shuō),我們寫ng程序,都會(huì)在頁(yè)面Dom元素上寫ngApp指令用來(lái)啟動(dòng)Angular程序,但是也可能出現(xiàn)一些特殊情況需要我們?cè)趩?dòng)之前干些什么或者需要我們手動(dòng)啟動(dòng)應(yīng)用程序,這時(shí)候angular.bootstrap就派的上用場(chǎng)了。
angular.copy
針對(duì)對(duì)象或數(shù)字創(chuàng)建一個(gè)深層的拷貝。
格式:angular.copy(source,?[destination]);
source:被拷貝的對(duì)象
destination:接收的對(duì)象 [注意:參數(shù)類型是對(duì)象或數(shù)組]
使用代碼:
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"]本獸對(duì)Angular API 逐個(gè)的學(xué)習(xí)并且進(jìn)行翻譯,然后寫能運(yùn)行成功的代碼,并把學(xué)習(xí)過(guò)程進(jìn)行整理記錄及分享...?
轉(zhuǎn)載于:https://www.cnblogs.com/ys-ys/p/4909786.html
總結(jié)
以上是生活随笔為你收集整理的AngularJs angular.bind、angular.bootstrap、angular.copy的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第四次上课 PPT作业
- 下一篇: 梯度下降法和牛顿法