什么是Angular
AngularJS是動(dòng)態(tài)Web應(yīng)用程序的結(jié)構(gòu)框架。 它允許您使用HTML作為模板語言,并允許您擴(kuò)展HTML的語法以清晰,簡潔地表達(dá)應(yīng)用程序的組件。AngularJS的數(shù)據(jù)綁定和依賴注入消除了許多你不得不編寫的代碼。這一切都發(fā)生在瀏覽器中,使其成為任何服務(wù)器技術(shù)的理想合作伙伴。
動(dòng)態(tài)應(yīng)用程序和靜態(tài)文檔之間的動(dòng)態(tài)適配常常通過以下方式解決
一個(gè)庫:一組在編寫網(wǎng)絡(luò)應(yīng)用程序時(shí)非常有用的函數(shù)。你的代碼是負(fù)責(zé)在它調(diào)用庫中它認(rèn)為合適的。 例如jQuery
框架:Web應(yīng)用程序的特定實(shí)現(xiàn),其中你的代碼填充詳細(xì)信息??蚣苁秦?fù)責(zé),當(dāng)它需要某些應(yīng)用程序特定時(shí)調(diào)用你的代碼。 例如,durandal,ember等。
AngularJS采取另一種方法。 它嘗試通過創(chuàng)建新的HTML結(jié)構(gòu)來最小化文檔中心HTML和應(yīng)用程序需要的阻抗之間的不匹配。 AngularJS通過我們調(diào)用指令的構(gòu)造來教導(dǎo)瀏覽器的新語法。 示例包括:
數(shù)據(jù)綁定:{{}}
DOM控制結(jié)構(gòu),用于重復(fù),顯示和隱藏DOM片段
支持表單和表單驗(yàn)證
將新行為附加到DOM元素,例如DOM事件處理
將HTML分組為可重用組件。
一個(gè)完整的客戶端解決方案
AngularJS不是構(gòu)建Web應(yīng)用程序的客戶端的整體謎題中的單一部分。它處理所有你曾經(jīng)用手寫的DOM和AJAX粘合代碼,并把它放在一個(gè)定義良好的結(jié)構(gòu)中。這使得AngularJS認(rèn)為應(yīng)該如何構(gòu)建一個(gè)CRUD(創(chuàng)建,讀取,更新,刪除)應(yīng)用程序。 但是,雖然它的意見,它也試圖確保其意見只是一個(gè)起點(diǎn),你可以輕易改變。 AngularJS提供了以下開箱即用的:
在一個(gè)連貫的集合中構(gòu)建一個(gè)CRUD應(yīng)用程序所需的一切:數(shù)據(jù)綁定,基本模板指令,表單驗(yàn)證,路由,深層鏈接,可重用組件和依賴注入
可測試性故事:單元測試,端到端測試,模擬和測試線束
發(fā)布應(yīng)用程序以目錄布局和測試腳本為起點(diǎn)。
AngularJS的討巧之處
AngularJS通過向開發(fā)人員提供更高級別的抽象來簡化應(yīng)用程序開發(fā)。像任何抽象一樣,它以靈活性為代價(jià)。換句話說,不是每個(gè)應(yīng)用程序都適合AngularJS。AngularJS是用CRUD應(yīng)用程序構(gòu)建的。幸運(yùn)的是,CRUD應(yīng)用程序代表了大多數(shù)Web應(yīng)用程序。 為了理AngularJS有什么好處,但它有助于理解什么時(shí)候一個(gè)應(yīng)用程序不是一個(gè)很好的適合AngularJS。
游戲和GUI編輯器是使用密集和棘手的DOM操作的應(yīng)用程序的例子。這些類型的應(yīng)用程序不同于CRUD應(yīng)用程序,因此可能不是一個(gè)很好適合AngularJS。在這些情況下,最好使用具有較低抽象級別的庫,例如jQuery。
AngularJS的禪
注冊回調(diào):注冊回調(diào)會雜