AngularJS
- 1.8.3 (2022年4月7日)[2][3]
- github
.com /angular /angular .js
1.2 MB 開發环境版本
AngularJS 是一款由Google维护的开源JavaScript函式庫,用來協助單一頁面應用程式運行,目前已停止維護[4]。它的目标是透過MVC模式功能增强基于浏览器的应用,使开发和测试变得更加容易。在版本2(全面使用TypeScript)之后改名Angular,第N版以Angular N的形式命名。
函式庫讀取包含附加自定義(標籤屬性(英语:HTML_attribute))的HTML,遵從這些自定義屬性中的指令,並將頁面中的輸入或輸出與由JavaScript變量表示的模型綁定起來。這些JavaScript變量的值可以手工設置,或者從靜態或動態JSON資源中獲取。
Angular的哲學
Angular的理念是声明式编程應該用於構建用戶界面以及編寫軟件構建,而指令式編程非常適合來表示業務邏輯。[5]框架採用並擴展了傳統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,更新频率約为每周一次或每两周一次. [6]
舊版瀏覽器支援
Angular在1.2之後的版本不再支援Internet Explorer 6和7.[7]在1.3之後的版本停止對Internet Explorer 8的支援.[8]
和Backbone.js的比较
- REST [9]
依赖注入
参考文献
- ^ Earliest known releases. [2019-11-15]. (原始内容存档于2017-07-29).
- ^ Release 1.8.3. 2022年4月7日 [2022年7月29日].
- ^ 1.8.3 ultimate-farewell (2022-04-07).
- ^ AngularJS. docs.angularjs.org. [2022-07-14]. (原始内容存档于2022-03-16).
- ^ What Is Angular?. [12 February 2013]. (原始内容存档于2013-05-20).
- ^ angular.js CHANGELOG. [2015-06-18]. (原始内容存档于2015-05-13).
- ^ AngularJS: Developer Guide: Internet Explorer Compatibility. Google. [2014-10-12]. (原始内容存档于2014-10-17).
- ^ Minar, Igor. AngularJS 1.3: a new release approaches. AngularJS Blog. [2014-10-12]. (原始内容存档于2014-12-08).
- ^ Javascript Frameworks And Data Binding. [13 February 2013]. (原始内容存档于2014年8月24日).
延伸阅读
- Green, Brad; Seshadri, Shyam. AngularJS 1st. O'Reilly Media. March 22, 2013: 150 [2019-11-15]. ISBN 978-1449344856. (原始内容存档于2019-11-15).
外部链接
- 官方网站
- 在Google Groups上的AngularJS(页面存档备份,存于互联网档案馆)
- 在Google+上的AngularJS
- Github上AngularJS Batarang Chrome plugin(页面存档备份,存于互联网档案馆)
- 查
- 论
- 编
- CppCMS(英语:CppCMS)
- Wt(英语:Wt (web toolkit))
- CFWheels
- ColdBox Platform(英语:ColdBox Platform)
- ColdSpring(英语:ColdSpring Framework)
- Fusebox(英语:Fusebox (programming))
- Mach-II(英语:Mach-II)
- Model-Glue(英语:Model-Glue)
- Caveman2(英语:Caveman2)
- CL-HTTP(英语:CL-HTTP)
- UnCommon Web(英语:UnCommon Web)
- Weblocks
- Vibe.d(英语:Vibe.d)
- Happstack(英语:Happstack)
- Yesod(英语:Yesod (web framework))
- Snap(英语:Snap (web framework))
- AppFuse(英语:AppFuse)
- Flexive(英语:Flexive)
- Grails(英语:Grails (framework))
- GWT
- ICEfaces(英语:ICEfaces)
- ItsNat(英语:ItsNat)
- JavaServer Faces
- JHipster(英语:JHipster)
- Jspx(英语:Jspx-bay)
- JWt(英语:JWt (Java web toolkit))
- OpenXava(英语:OpenXava)
- Play
- Reasonable Server Faces(英语:Reasonable Server Faces)
- Remote Application Platform(英语:Remote Application Platform)
- RIFE(英语:RIFE)
- Seam(英语:JBoss Seam)
- Spring
- Stripes(英语:Stripes (framework))
- Struts
- Tapestry
- Vaadin(英语:Vaadin)
- Vert.x
- WebWork(英语:WebWork)
- Wicket
- WaveMaker(英语:WaveMaker)
- ZK
- Ample SDK(英语:Ample SDK)
- Angular(英语:Angular (application platform))/AngularJS
- Backbone.js
- Chaplin.js(英语:Chaplin.js)
- Closure(英语:Google Closure Tools)
- Dojo Toolkit
- Ember.js
- Extjs
- JQuery
- Meteor(英语:Meteor (web framework))
- MooTools(英语:MooTools)
- Node.js
- Prototype
- React
- Rico
- script.aculo.us(英语:script.aculo.us)
- Sencha Touch(英语:Sencha Touch)
- SproutCore(英语:SproutCore)
- Vue.js
- Wakanda(英语:Wakanda (software))
- CakePHP(英语:CakePHP)
- CodeIgniter
- Fat-Free
- FuelPHP
- Gyroscope(英语:Gyroscope (software))
- Horde(英语:Horde (software))
- Kohana(英语:Kohana (framework))
- Laravel
- Lithium(英语:Lithium (software))
- Midgard(英语:Midgard (software))
- MODX(英语:MODX)
- Nette(英语:Nette Framework)
- Phalcon
- PRADO(英语:PRADO (framework))
- Qcodo(英语:Qcodo)
- Silex(英语:Silex (web framework))
- SilverStripe
- Symfony
- TYPO3
- Xaraya(英语:Xaraya)
- XOOPS
- Yii(英语:Yii)
- Zend framework
- Camping(英语:Camping (microframework))
- Merb(英语:Merb)
- Padrino(英语:Padrino (web framework))
- Ruby on Rails
- Sinatra(英语:Sinatra (software))
- Yew
- Lift
- Play
- Scalatra(英语:Scalatra)
- AIDA/Web(英语:AIDA/Web)
- Seaside(英语:Seaside (software))
|