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

相关文章
相关标签/搜索