AngularJS是為了克服HTML在構建應用上的不足而設計的。HTML是一門很好的為靜態(tài)文本展示設計的聲明式語言,但要構建WEB應用的話它就顯得乏力了。所以我做了一些工作(你也可以覺得是小花招)來讓瀏覽器做我想要的事。 通常,我們是通過以下技術來解決靜態(tài)網(wǎng)頁技術在構建動態(tài)應用上的不足: 類庫 - 類庫是一些函數(shù)的集合,它能幫助你寫WEB應用。起主導作用的是你的代碼,由你來決定何時使用類庫。類庫有:jQuery等 框架 - 框架是一種特殊的、已經(jīng)實現(xiàn)了的WEB應用,你只需要對它填充具體的業(yè)務邏輯。這里框架是起主導作用的,由它來根據(jù)具體的應用邏輯來調(diào)用你的代碼。框架有:knockout、sproutcore等。 AngularJS使用了不同的方法,它嘗試去補足HTML本身在構建應用方面的缺陷。AngularJS通過使用我們稱為標識符(directives)的結構,讓瀏覽器能夠識別新的語法。例如: 使用雙大括號{{}}語法進行數(shù)據(jù)綁定; 使用DOM控制結構來實現(xiàn)迭代或者隱藏DOM片段; 支持表單和表單的驗證; 能將邏輯代碼關聯(lián)到相關的DOM元素上; 能將HTML分組成可重用的組件。端對端的解決方案 AngularJS試圖成為WEB應用中的一種端對端的解決方案。這意味著它不只是你的WEB應用中的一個小部分,而是一個完整的端對端的解決方案。這會讓AngularJS在構建一個CRUD(增加Create、查詢Retrieve、更新Update、刪除Delete)的應用時顯得很“固執(zhí)”(原文為 opinionated,意指沒有太多的其他方式)。但是,盡管它很“固執(zhí)”,它仍然能確保它的“固執(zhí)”只是在你構建應用的起點,并且你仍能靈活變動。AngularJS的一些出眾之處如下: 構建一個CRUD應用可能用到的全部內(nèi)容包括:數(shù)據(jù)綁定、基本模板標識符、表單驗證、路由、深度鏈接、組件重用、依賴注入。 測試方面包括:單元測試、端對端測試、模擬和自動化測試框架。 具有目錄布局和測試腳本的種子應用作為起點。AngularJS的可愛之處 AngularJS通過為開發(fā)者呈現(xiàn)一個更高層次的抽象來簡化應用的開發(fā)。如同其他的抽象技術一樣,這也會損失一部分靈活性。換句話說,并不是所有的應用都適合用AngularJS來做。AngularJS主要考慮的是構建CRUD應用。幸運的是,至少90%的WEB應用都是CRUD應用。但是要了解什么適合用AngularJS構建,就得了解什么不適合用AngularJS構建。 如游戲,圖形界面編輯器,這種DOM操作很頻繁也很復雜的應用,和CRUD應用就有很大的不同,它們不適合用AngularJS來構建。像這種情況用一些更輕量、簡單的技術如jQuery可能會更好。