AngularJS 1 啟動流程

2021-07-22 08:36:17 字數 1997 閱讀 2572

angularjs的原始碼在整體上,與其它很多庫和框架一樣,是乙個自執行函式,其整體結構簡化如下:

(function

(window, document, undefined)

bindjquery()

;//繫結jquery

publishexternalapi(angular)

;//對外公布angularjs的函式

jqlite(document).ready(function

() );})

(window, document)

;

整體思路

該方法主要是繫結jquery,簡化後的**如下:

var bindjqueryfired = false;

function bindjquery()

var jqname = jq();

jquery = window.jquery;

if (isdefined(jqname))

if (jquery && jquery.fn.on) else

angular.element = jqlite;//具體意義看腳注

bindjqueryfired = true;

}

檢視angular.element1

該方法的**簡化如下:

function publishexternalapi(angular) );

//定義angular.module方法

angularmodule = setupmoduleloader(window);

//嘗試獲取nglocal模組,如果沒有,則需要註冊乙個

try catch (e)

//註冊ng模組,也就是angularjs的核心模組

angularmodule('ng', ['nglocale'], ['$provide',

function ngmodule($provide)

]);}

主要功能為:

function

angularinit

(element, bootstrap) ;

foreach(ngattrprefixes, function

(prefix)

});foreach(ngattrprefixes, function

(prefix)

});}

}

需要說明的是,angularjs支援的屬性字首有多種,包括ng-、data-ng-、ng:和x-ng-,具體請看ngattrprefixes變數。

應用的啟動方式主要包括自動啟動和手動啟動。

自動啟動

ng-controller="ctrl">

div>

div>

var mymodule = angular.module('mymodule', );

mymodule.controller('ctrl', ['$scope', function

($scope) ]);

script>

手動啟動

ng-controller="ctrl">

div>

div>

var mymodule = angular.module('mymodule', );

mymodule.controller('ctrl', ['$scope', function

($scope) ]);

angular.element(document).ready(function

() );

script>

引用jquery的前提下,和$用法基本相同:angular.element(『#id』).hide(),不引入jquery,則功能較弱angular.element(document).find(『xx』).hide() ↩

linux啟動流程 (1)

啟動流程一覽 1.載入bios的硬體資訊與進行自我測試,並依據設定取得第乙個可啟動的裝置 2.讀取並執行第乙個啟動裝置內mbr的boot loader 也就是grub,spfdisk等程式 3.依據boot loader的設定載入kernel,kernel會開始檢測硬體與載入驅動程式 4.在硬體驅動...

AngularJS執行流程詳解

大家應該都知道,當瀏覽器載入乙個html頁面時,它會將hmtl頁面先解析成dom樹,然後逐個載入dom樹中的每乙個元素節點。我們可以把angularjs當做乙個類似jquery的js庫,我們通過 compile服務通過遍歷dom樹的方式查詢有宣告指令的dom元素。當碰到帶有乙個或多個指令的dom元素...

Angularjs啟動過程

步驟一 有兩個property,其它都是function 一共有5個方法 annotate 分析函式簽名 不要new的原因 步驟二if window.angular.bootstrap angular的三種啟動方式步驟三嘗試繫結jquery,如果發現匯入了jquery 則使用匯入的jquery,否則...