AngularJS

AngularJS 是一款由Google维护的开源JavaScript函式庫，用來協助單一頁面應用程式運行，目前已停止維護。它的目标是透過MVC模式功能增强基于浏览器的应用，使开发和测试变得更加容易。在版本2（全面使用TypeScript）之后改名Angular，第N版以Angular N的形式命名。

函式庫讀取包含附加自定義（）的HTML，遵從這些自定義屬性中的指令，並將頁面中的輸入或輸出與由JavaScript變量表示的模型綁定起來。這些JavaScript變量的值可以手工設置，或者從靜態或動態JSON資源中獲取。

Angular的哲學 

Angular的理念是声明式编程應該用於構建用戶界面以及編寫軟件構建，而指令式編程非常適合來表示業務邏輯。框架採用並擴展了傳統HTML，通過雙向的數據綁定來適應動態內容，雙向的數據綁定允許模型和视图之間的自動同步。因此，Angular使得對DOM的操作不再重要並提升了可測試性。

設計目標：

 將應用邏輯與對DOM的操作解耦。這會提高代碼的可測試性。
 將應用程序的測試看的跟應用程序的編寫一樣重要。代碼的構成方式對測試的難度有巨大的影響。
 將應用程序的客戶端與伺服器端解耦。這允許客戶端和伺服器端的開發可以齊頭並進，並且讓雙方的復用成為可能。
 指導開發者完成構建應用程序的整個歷程：從用戶界面的設計，到編寫業務邏輯，再到測試。

Angular遵循軟件工程的MVC模式，並鼓勵展現，數據，和邏輯組件之間的松耦合。通過依賴注入（dependency injection），Angular為客戶端的Web應用帶來了傳統服務端的服務，例如獨立於视圖的控制。因此，後端減少了許多負擔，產生了更輕的Web應用。

Angular主要的指令（自定义标签）

雙向數據綁定 

Angular在呈現和資料中間，可以簡單建立雙向的數據綁定。一旦建立雙向綁定，使用者輸入，會由Angular自動傳到一個變數中，再自動讀到所有綁到它的內容，更新它。效果上就是立即的資料同步。在程式碼中修改變數，也會直接反應到呈現的外觀上。不僅內容可以雙向綁定，其他諸如類別、寬度、高度等等，都可以和變數與使用者的輸入，綁定起來。

開發歷史 
AngularJS在2009年由Miško Hevery和Adam Abrons開發，作為線上JSON儲存服務的軟體，它是以兆位元來計價，便於成為企業的應用服務。當初以"GetAngular.com"註册網域，但由於只有少量的註册用户，在兩人決定放棄這個商業想法前，就把Angular開源了。

Abrons後來離開了這個計劃，但在Google工作的Hevery和一些谷歌員工如Igor Minár和Vojta Jína等則繼續開發維護此函式庫。

发行 
目前有兩個正在維護的穩定版本：1.3.x和1.4.x，更新频率約为每周一次或每两周一次.

舊版瀏覽器支援 
Angular在1.2之後的版本不再支援Internet Explorer 6和7.在1.3之後的版本停止對Internet Explorer 8的支援.

和Backbone.js的比较
REST  

依赖注入

参考文献

延伸阅读

外部链接
 
 在Google Groups上的AngularJS
 在Google+上的AngularJS
Github上AngularJS Batarang Chrome plugin

JavaScript函式库
Ajax
使用MIT许可证的软件
Google软体