#1. jQuery缺失的環節 jQuery有點像C語言,威力很大,不過要弄出點像樣的前端界面,還得花很多功夫 處理瑣碎的事情。前端
還能再簡單些嗎?Misko Hevery認爲在某些應用場景下能夠。因而,AngularJS誕生了:jquery
AngularJS引入了三個主要的概念,指望讓前端開發更系統化一些:程序員
不少人在初次接觸AngularJS時,都有些吃驚,由於它把前端開發搞的忽然嚴肅起來 了。考慮到Misko曾經是一個Java程序員,這一切就好理解了。架構
Java程序員擅長引入複雜的架構來解決簡單的問題,對吧?框架
#2. 庫VS框架工具
和jQuery不一樣,AngularJS是一個框架。對象
jQuery是一個庫,庫老是被動的,就像工具,應用的開發邏輯是你的,在 某一點上須要用一下工具,就用好了。事件
框架則很是不一樣,這意味着AngularJS爲應用已經搭起了一個架子,約定了 一些組成部分,而且實現了這些部分的拼裝運行。換句話說, 應用的開發邏輯是AngularJS的,你得跟着它走。圖片
因此,AngularJS難學一些,由於它有一個架子在那,你不瞭解這個架子, 基本無法下手。element
#angular中的jquery
若是某種緣由你不肯意使用jqLite,也能夠在AngularJS以前引入jQuery庫。 AngularJS自動地將jqLite升級成jQuery,angular.element等同於 $ 。 這樣又可使用熟悉的選擇符了。
jqLite包括一些額外的方法以適應AngularJS框架:
controller(name) - 得到元素對應的控制器對象 injector() - 得到元素對應的注入器對象 scope() - 得到元素對應的做用域對象 isolateScope() - 得到元素對應的隔離做用域對象,若是有的話。 inheritedData() - 和data()同樣,但若是當前元素沒有指定的數據,會向上級 節點繼續找。
jqLite還提供一個$destroy事件,當DOM對象被從DOM樹刪除時,AngularJS將觸發 這個事件,以便指令進行一些善後清理工做。
→_→的代碼已經悄悄地將jQuery庫改爲了AngularJS,注意一下其中angular.element 的使用。