10.jQuery的不足

#1. jQuery缺失的環節 jQuery有點像C語言,威力很大,不過要弄出點像樣的前端界面,還得花很多功夫 處理瑣碎的事情。前端

還能再簡單些嗎?Misko Hevery認爲在某些應用場景下能夠。因而,AngularJS誕生了:jquery

AngularJS引入了三個主要的概念,指望讓前端開發更系統化一些:程序員

  1. 聲明式界面開發
  2. 雙向數據綁定
  3. 使用依賴注入解耦

不少人在初次接觸AngularJS時,都有些吃驚,由於它把前端開發搞的忽然嚴肅起來 了。考慮到Misko曾經是一個Java程序員,這一切就好理解了。架構

Java程序員擅長引入複雜的架構來解決簡單的問題,對吧?框架

#2. 庫VS框架工具

和jQuery不一樣,AngularJS是一個框架。對象

輸入圖片說明

jQuery是一個庫,庫老是被動的,就像工具,應用的開發邏輯是你的,在 某一點上須要用一下工具,就用好了。事件

框架則很是不一樣,這意味着AngularJS爲應用已經搭起了一個架子,約定了 一些組成部分,而且實現了這些部分的拼裝運行。換句話說, 應用的開發邏輯是AngularJS的,你得跟着它走。圖片

因此,AngularJS難學一些,由於它有一個架子在那,你不瞭解這個架子, 基本無法下手。element

#angular中的jquery

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 的使用。

相關文章
相關標籤/搜索