日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

AngularJS自學(xué)之路(二)

 看見就非常 2015-04-23

模塊

使用模塊帶來的好處
1. 保持全局命名空間的清潔;
2. 編寫測(cè)試代碼更容易,并能保持其清潔,以便更容易找到互相隔離的功能;
3. 易于在不同應(yīng)用間復(fù)用代碼;
4. 使應(yīng)用能夠以任意順序加載代碼的各個(gè)部分。
AngularJS允許我們使用angular.module()方法來聲明模塊,這個(gè)方法能夠接受兩個(gè)參數(shù),
第一個(gè)是模塊的名稱,第二個(gè)是依賴列表,也就是可以被注入到模塊中的對(duì)象列表。

//這個(gè)方法相當(dāng)于AngularJS模塊的setter方法,是用來定義模塊的。
angular.module('myApp', []);
  • 1
  • 2

調(diào)用這個(gè)方法時(shí)如果只傳遞一個(gè)參數(shù),就可以用它來引用模塊。例如,可以通過以下代碼來
引用myApp模塊:

// 這個(gè)方法用于獲取應(yīng)用
//這個(gè)方法相當(dāng)于AngularJS模塊的getter方法,用來獲取對(duì)模塊的引用。
angular.module('myApp')
  • 1
  • 2
  • 3

作用域

應(yīng)用的作用域是和應(yīng)用的數(shù)據(jù)模型相關(guān)聯(lián)的,同時(shí)作用域也是表達(dá)式執(zhí)行的上下文。$scope對(duì)象是定義應(yīng)用業(yè)務(wù)邏輯、控制器方法和視圖屬性的地方。

作用域是視圖和控制器之間的膠水。在應(yīng)用將視圖渲染并呈獻(xiàn)給用戶之前,視圖中的模板會(huì)和作用域進(jìn)行連接,然后應(yīng)用會(huì)對(duì)DOM進(jìn)行設(shè)置以便將屬性變化通知給AngularJS。這個(gè)功能讓XHR請(qǐng)求等promise對(duì)象的實(shí)現(xiàn)變得非常容易。

作用域是應(yīng)用狀態(tài)的基礎(chǔ)?;趧?dòng)態(tài)綁定,我們可以依賴視圖在修改數(shù)據(jù)時(shí)立刻更新 $scope,也可以依賴 scope在其發(fā)生變化時(shí)立刻重新渲染視圖。

作用域提供了監(jiān)視數(shù)據(jù)模型變化的能力。它允許開發(fā)者使用其中的apply機(jī)制,將數(shù)據(jù)模型的變化在整個(gè)應(yīng)用范圍內(nèi)進(jìn)行通知。我們?cè)谧饔糜虻纳舷挛闹卸x和執(zhí)行表達(dá)式,同時(shí)它也是將事件通知給另一個(gè)控制器和應(yīng)用其他部分的中介。

視圖和$scope的世界

AngularJS啟動(dòng)并生成視圖時(shí),會(huì)將根ng-app元素同$rootScope進(jìn)行綁定。rootScope是所有scope對(duì)象的最上層。

$scope對(duì)象就是一個(gè)普通的JavaScript對(duì)象,我們可以在其上隨意修改或添加屬性。

$scope對(duì)象在AngularJS中充當(dāng)數(shù)據(jù)模型,但與傳統(tǒng)的數(shù)據(jù)模型不一樣,scope并不負(fù)責(zé)處理和操作數(shù)據(jù),它只是視圖和HTML之間的橋梁,它是視圖和控制器之間的膠水。

作用域的基本功能

  1. 提供觀察者以監(jiān)視數(shù)據(jù)模型的變化;
  2. 可以將數(shù)據(jù)模型的變化通知給整個(gè)應(yīng)用,甚至是系統(tǒng)外的組件;
  3. 可以進(jìn)行嵌套,隔離業(yè)務(wù)功能和數(shù)據(jù);
  4. 給表達(dá)式提供運(yùn)算時(shí)所需的執(zhí)行環(huán)境。

作用域包含了渲染視圖時(shí)所需的功能和數(shù)據(jù),它是所有視圖的唯一源頭。可以將作用域理解成視圖模型(view model)。

$scope對(duì)象的生命周期處理有四個(gè)不同階段。

創(chuàng)建

在創(chuàng)建控制器或指令時(shí),AngularJS會(huì)用$injector創(chuàng)建一個(gè)新的作用域,并在這個(gè)新建的控制器或指令運(yùn)行時(shí)將作用域傳遞進(jìn)去。

鏈接

當(dāng)Angular開始運(yùn)行時(shí),所有的$scope對(duì)象都會(huì)附加或者鏈接到視圖中。所有創(chuàng)建scope對(duì)象的函數(shù)也會(huì)將自身附加到視圖中。這些作用域?qū)?huì)注冊(cè)當(dāng)Angular應(yīng)用上下文中發(fā)生變化時(shí)需要運(yùn)行的函數(shù)。

更新

當(dāng)事件循環(huán)運(yùn)行時(shí),它通常執(zhí)行在頂層$scope對(duì)象上(被稱作rootScope),每個(gè)子作用域都執(zhí)行自己的臟值檢測(cè)。每個(gè)監(jiān)控函數(shù)都會(huì)檢查變化。如果檢測(cè)到任意變化,scope對(duì)象就會(huì)觸發(fā)指定的回調(diào)函數(shù)。

銷毀

當(dāng)一個(gè)$scope在視圖中不再需要時(shí),這個(gè)作用域?qū)?huì)清理和銷毀自己。

盡管永遠(yuǎn)不會(huì)需要清理作用域(因?yàn)锳ngular會(huì)為你處理),但是知道是誰創(chuàng)建了這個(gè)作用域還是有用的,因?yàn)槟憧梢允褂眠@個(gè)$scope上叫做destory()的方法來清理這個(gè)作用域。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多