AngularJS是一個開源Web應用程序框架。它最初是由MISKO Hevery和Adam Abrons於2009年開發。如今是由谷歌維護。它的最新版本是1.3.14。html
AngularJS是一個功能強大的基於JavaScript開發框架用於建立富互聯網應用(RIA)。設計模式
AngulajJS爲開發者提供的選項(使用JavaScript)在一個乾淨的MVC(模型 - 視圖 - 控制器)的方式來編寫客戶端應用程序。數組
AngularJS寫的應用都是跨瀏覽器兼容。AngularJS使用JavaScript代碼自動處理適應每種瀏覽器。瀏覽器
AngularJS是開源的,徹底免費的,而且由數千名世界各地的開發者開發維護。它是根據Apache許可證2.0版許可發佈。安全
整體來講,AngularJS是一個用來構建大型應用,高性能的Web應用程序的框架,同時使它們易於維護。服務器
如下是AngularJS中最重要的核心功能:框架
數據綁定: 模型和視圖組件之間的數據自動同步。函數
適用範圍: 這些對象參考模型。它們充當控制器和視圖之間的膠水。性能
控制器: 這些Javascript函數綁定到特定的範圍。單元測試
服務: AngularJS配有多個內置服務,例如 $http 可做爲一個XMLHttpRequest請求。這些單一對象在應用程序只實例化一次。
過濾器: 從一個數組的條目中選擇一個子集,並返回一個新的數組。
指令: 指令是關於DOM元素標記(如元素,屬性,CSS等等)。這些能夠被用來建立做爲新的,自定義部件的自定義HTML標籤。AngularJS設有內置指令(如:ngBind,ngModel...)
模板:這些符合從控制器和模型信息的呈現的視圖。這些能夠是單個文件(如index.html),或使用「諧音」在一個頁面多個視圖。
路由: 它是切換視圖的概念。
模型視圖: MVC是一個設計模式將應用劃分爲不一樣的部分(稱爲模型,視圖和控制器),每一個都有不一樣的職責。 AngularJS並無傳統意義上的實現MVC,而是更接近於MVVM(模型 - 視圖 - 視圖模型)。 AngularJS團隊將它做爲模型視圖。
深層連接: 深層連接,可使應用程序狀態進行編碼在URL中而可以添加到書籤。應用程序可從URL恢復到相同的狀態。
依賴注入: AngularJS有一個內置的依賴注入子系統,開發人員經過使應用程序從而更易於開發,理解和測試。
AngularJS提供一個很是乾淨和維護的方式來創造單頁的應用。
AngularJS提供數據綁定功能在HTML中,從而給用戶提供豐富和響應的體驗
AngularJS代碼可進行單元測試。
AngularJS使用依賴注入和利用關注點分離。
AngularJS提供了可重用的組件。
使用AngularJS,開發人員編寫更少的代碼,並得到更多的功能。
在AngularJS中,視圖都是純HTML頁面,並用JavaScript編寫控制器作業務處理。
AngularJS應用程序能夠在全部主要的瀏覽器和智能手機,包括Android和iOS系統的手機/平板電腦上運行。
雖然AngularJS自帶不少優勢,但咱們應該考慮如下幾點(缺點):
不安全:由於只是JavaScript一種框架,由AngularJS編寫的應用程序是不安全的。服務器端身份驗證和受權是必須用來保證應用程序的安全。
不可降解:若是應用程序的用戶禁用JavaScript,那最後用戶看到的只是基本頁面,僅此而已。