Angular JS是一個由Google維護的開源的Javascript框架,主要作者為: Misko Hevery(angular JS之父, Sr. Computer Scientist at Google), Igor Minar(tech lead of AngularJS),Vojta Jina。它的創新點在於,利用資料雙向繫結和依賴注入,使得不用再寫大量的程式碼。這些全部是通過瀏覽器端的Javascript實現的,這也使得它能夠完美的和任何伺服器端技術結合。
Angular JS的哲學
AngularJS是建立在這樣的信念之上:當組建檢視同時又要寫軟體邏輯時,宣告式的程式碼會比命令式的程式碼好得多,儘管命令式的程式碼非常適合用來表述業務邏輯。Angular JS框架採用並擴充套件了傳統HTML,通過雙向的資料繫結來適應動態內容,雙向的資料繫結允許模型和檢視之間的自動同步。因此,AngularJS使得對DOM的操作不再重要並提升了可測試性。
設計目標:
- 將應用邏輯與對DOM的操作解耦,這會大大改善程式碼的可調性和可測試性。
- 將測試和開發看的一樣重要,程式碼的結構對測試的難度有巨大的影響。
- 將應用程式的客戶端與伺服器端解耦。這允許客戶端和伺服器端的開發可以齊頭並進,並且讓雙方的複用成為可能。
- 指導開發者完成構建應用程式的整個歷程: 從使用者介面的設計,到編寫業務邏輯,再到測試。
通常,我們是通過以下技術來解決靜態網頁技術在構建動態應用上的不足:
- 類庫 - 類庫是一些函式的集合,它能幫助你寫WEB應用。起主導作用的是你的程式碼,由你來決定何時使用類庫。類庫有:jQuery等
- 框架 - 框架是一種特殊的、已經實現了的WEB應用,你只需要對它填充具體的業務邏輯。這裡框架是起主導作用的,由它來根據具體的應用邏輯來呼叫你的程式碼。框架有:knockout、sproutcore等。
AngularJS使用了不同的方法,它嘗試去補足HTML本身在構建應用方面的缺陷。AngularJS通過使用我們稱為指令(directives)的結構,讓瀏覽器能夠識別新的語法。例如:
- 使用雙大括號{{}}語法進行資料繫結;
- 使用DOM控制結構來實現迭代或者隱藏DOM片段;
- 支援表單和表單的驗證;
- 能將邏輯程式碼關聯到相關的DOM元素上;
- 能將HTML分組成可重用的元件。