最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular的Bootstrap(引導)和Compiler(編譯)機制

 更新時間:2016年06月20日 10:37:37   作者:破狼  
這篇文章主要介紹了Angular的Bootstrap(引導)和Compiler(編譯)機制的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

在上節(jié)簡單介紹了Angular js框架,在這節(jié)將繼續(xù)Angular的Bootstrap(引導)和Compiler(編譯)機制。

一:Bootstrap:Angular的初始化

1:Angular推薦的自動化初始如下:

<!doctype html>
<html xmlns:ng="http://angularjs.org" ng-app>
<body>
...
<script src="angular.js">
</body>
</html 

利用ngapp標示你需要自動引導應用程序的根節(jié)點,一般典型為html tag。在DOMContentLoaded事件觸發(fā)Angular會自動尋找ngapp作為應用的根節(jié)點,如果找到則會進行如下操作:

1.加載module(模塊)相關directive(指令)。

2.創(chuàng)建應用程序injector(Angular的注入機制).

3.編譯處理ng-app作為根節(jié)點的指令。這里允許你自定義選擇DOM節(jié)點作為應用根節(jié)點。

<!doctype html>
<html ng-app="optionalModuleName">
<body>
I can add: {{ + }}.
<script src="angular.js"></script>
</body>
</html>

2:手動初始化:

如果想對對初始化有更多的控制權,可以采用自定義手動引導方法初始化代替angular的自動初始化。比如你需要在angular編譯模板之前做一些事情,比如改變模板某些內容。手動引導方式將會如下:

<!doctype html>
<html xmlns:ng="http://angularjs.org">
<body>
Hello {{'World'}}!
<script src="http://code.angularjs.org/angular.js"></script>
<script>
angular.element(document).ready(function() {
angular.bootstrap(document);
});
</script>
</body>
</html>

1.在頁面所有代碼加載完成后,找到html模板根節(jié)點(典型為document元素).

2.調用api/angular.bootstrap(angular.bootstrap(element[, modules]))編譯模板使其可執(zhí)行.

二:Compiler:Angular的編譯

Angular的編譯機制允許開發(fā)人員給瀏覽器添加新的Html語法,允許我們添加一些html節(jié)點,attribute,甚至創(chuàng)建一些自定義的節(jié)點,attribute。Angular把這些行為的擴展成為指令directives.Angular帶來了有用的directive,并允許我們創(chuàng)建特定領域的directive。

1: Compiler處理分為兩個步驟:

1.轉換DOM,收集directive,返回Link(連接)function。

2.合并指令和Scope產(chǎn)生一個活生生的View。scop mode中的任何改變都會通過反應到view中,并來自view的用戶交互也會同步到scope model,并scope是一個單一數(shù)據(jù)源。

2:指令Directive

Directive是一個會被特殊的html設計編輯處理的行為。其可以被放置在節(jié)點的names, attributes, class 上,甚至是html注釋中。下面是Angular自帶的ng-bind的等價寫法:

<span ng-bind="exp"></span>
<span class="ng-bind: exp;"></span>
<ng-bind></ng-bind>
<!-- directive: ng-bind exp –>

directive僅僅是一個在dom中會被Angular執(zhí)行的一個function。下面是一個拖拽的實例,其可以被應用于span,div的attribute上:

angular.module('drag', []).directive('draggable', function ($document) { 
var startX = , 
startY = , 
x = , 
y = ; 
return function (scope, element, attr) { 
element.css({ 
position: 'relative', 
border: 'px solid red', 
backgroundColor: 'lightgrey', 
cursor: 'pointer' 
}); 
element.bind('mousedown', function (event) { 
startX = event.screenX - x; 
startY = event.screenY - y; 
$document.bind('mousemove', mousemove); 
$document.bind('mouseup', mouseup); 
}); 
function mousemove(event) { 
y = event.screenY - startY; 
x = event.screenX - startX; 
element.css({ 
top: y + 'px', 
left: x + 'px' 
}); 
} 
function mouseup() { 
$document.unbind('mousemove', mousemove); 
$document.unbind('mouseup', mouseup); 
} 
} 
});

Demo
you can drag and move me to anywhere !

3:view理解

有許多的模板引擎都被設計為模板(template)和數(shù)據(jù)(model)的合并返回一個字符串,再利用innerHTML追加在DOM節(jié)點,這以為則數(shù)據(jù)的任何改變都必須重新合并生成新的內容追加在DOM上。形如下圖屬于單向綁定技術:

而Angular則不同利用directive指令而非字符串,返回值是一個合并數(shù)據(jù)model的link function。view和model的綁定是自動,透明的,不需要開發(fā)人員添加額外的action去更新view,Angular在這里不僅是數(shù)據(jù)model的綁定,還有行為概念。作為雙向的綁定,形如下圖:

資料:

 1.Angular官網(wǎng):http://angularjs.org/

2.代碼下載:https://github.com/angular/angular.js

以上所述是小編給大家介紹的Angular的Bootstrap(引導)和Compiler(編譯)機制,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • AngularJS優(yōu)雅的自定義指令

    AngularJS優(yōu)雅的自定義指令

    這篇文章主要介紹了AngularJS優(yōu)雅的自定義指令,告訴大家為什么使用AngularJS自定義指令,以及如何使用AngularJS自定義指令?感興趣的小伙伴們可以參考一下
    2016-07-07
  • angular基于路由控制ui-router實現(xiàn)系統(tǒng)權限控制

    angular基于路由控制ui-router實現(xiàn)系統(tǒng)權限控制

    這篇文章主要介紹了angular基于路由控制ui-router實現(xiàn)系統(tǒng)權限控制的相關資料,需要的朋友可以參考下
    2016-09-09
  • Angular2 PrimeNG分頁模塊學習

    Angular2 PrimeNG分頁模塊學習

    這篇文章主要為大家詳細介紹了Angular2 PrimeNG分頁模塊學習教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Angular 如何使用第三方庫的方法

    Angular 如何使用第三方庫的方法

    本篇文章主要介紹了Angular 如何使用第三方庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 談談AngularJs中的隱藏和顯示

    談談AngularJs中的隱藏和顯示

    本文給大家介紹angularjs 隱藏和顯示,對angularjs 隱藏和顯示相關知識感興趣的朋友一起學習吧
    2015-12-12
  • angular4中關于表單的校驗示例

    angular4中關于表單的校驗示例

    本篇文章主要介紹了angular4中關于表單的校驗示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 使用angularjs.foreach時return的問題解決

    使用angularjs.foreach時return的問題解決

    這篇文章主要介紹了使用angularjs.foreach時return的問題解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Angular彈出模態(tài)框的兩種方式

    Angular彈出模態(tài)框的兩種方式

    這篇文章主要介紹了Angular彈出模態(tài)框的兩種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-10-10
  • 詳解Angular的雙向數(shù)據(jù)綁定(MV-VM)

    詳解Angular的雙向數(shù)據(jù)綁定(MV-VM)

    本文主要對Angular的雙向數(shù)據(jù)綁定(MV-VM)進行實例分析,具有一定的參考價值,下面跟著小編一起來看下吧
    2016-12-12
  • angular強制更新ui視圖的實現(xiàn)方法

    angular強制更新ui視圖的實現(xiàn)方法

    這篇文章主要介紹了angular強制更新ui視圖的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論

贡嘎县| 晋江市| 英山县| 石屏县| 康乐县| 宜章县| 竹北市| 长宁县| 大港区| 建水县| 新宾| 罗江县| 永春县| 鲁甸县| 连平县| 涿州市| 邓州市| 宜君县| 新巴尔虎右旗| 茂名市| 苗栗县| 远安县| 西平县| 淄博市| 阳西县| 界首市| 黄浦区| 平邑县| 诸暨市| 徐水县| 萨嘎县| 中江县| 嘉荫县| 巴彦县| 乌拉特后旗| 博客| 阿克苏市| 逊克县| 景东| 五莲县| 航空|