AngularJS学习进修分析总结&详细介绍.doc





《AngularJS学习进修分析总结&详细介绍.doc》由会员分享,可在线阅读,更多相关《AngularJS学习进修分析总结&详细介绍.doc(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、|新晨科技股份有限公司AngularJS 介绍AngularJS 学习文档欧阳龙蛟2014/1/15在此处键入文档的摘要。摘要通常是对文档内容的简短总结。在此处键入文档的摘要。摘要通常是对文档内容的简短总结。AngularJS 学习文档2目录1 前言 .42 AngularJS 概述 .42.1 AngularJS 是什么? .42.2 AngularJS 简单介绍 .52.3 什么时候该用 AngularJS.53 AugularJS 特性 .53.1 特性一:双向的数据绑定 .53.2 特性二:模板 .63.3 特性三:MVC .73.4 特性四:服务和依赖注入 .73.5 特性五:指令(
2、Directives) .84 功能介绍 .94.1 数据绑定 .94.2 scopes、module、controller .104.2.1 scopes .104.2.2 module.104.2.3 ng-controller .104.3 ajax.114.4 表达式 .124.5 过滤器 .124.5.1 过滤器使用方式 .134.5.2 ng 的内置过滤器 .134.5.3 自定义过滤器及示例 .154.6 指令 .164.6.1 样式相关的指令 .174.6.2 表单控件功能相关指令 .184.6.3 事件绑定相关指令 .184.6.4 特殊的 ng-src 和 ng-href.
3、194.6.5 示例 .204.7 服务 .214.7.1 服务(service)介绍 .214.7.2 自定义服务 .214.7.3 管理服务的依赖关系 .224.7.4 示例 .234.8 依赖注入 DI .244.9 路由 .264.9.1 ngRoute 内容 .264.9.2 ng 的路由机制 .264.9.3 示例 .274.10 NG 动画效果 .294.10.1 NG 动画效果简介 .294.10.2 示例 .30AngularJS 学习文档35 功能演示 .306 AngularJS 进阶 .316.1 数据绑定原理研究 .316.1.1 AngularJS 扩展事件循环 .
4、316.1.2 $watch 队列($watch list) .316.1.3 $digest 循环 .326.1.4 如何进入 angular context .336.1.5 使用$watch 来监视 .346.1.6 总结 .366.2 自定义指令详解 .366.2.1 指令的编译过程 .376.2.2 指令的使用方式及命名方法 .376.2.3 自定义指令的配置参数 .376.2.3 指令的表现参数 restrict 等 .386.2.4 指令的行为参数:compile 和 link .406.2.5 指令的划分作用域参数:scope .426.2.6 指令间通信参数:controll
5、er 和 require.456.3 性能及调优 .476.3.1 性能测试 .476.3.2 七大调优法则 .487 总结 .507.1 页面效果 .507.2 委派事件(代理事件) .517.2.1 NG 循环及事件绑定 .517.2.2 jQuery 委派事件 .51AngularJS 学习文档41 前言前端技术的发展是如此之快,各种优秀技术、优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢。AngularJS 是 google 在维护,其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏。这里便将我学习 AngularJS 写成文
6、档,一方面作为自己学习路程上的记录,另一方面也给有兴趣的同学一些参考。首先我自己也是一名学习者,会以学习者的角度来整理我的行文思路,这里可能只是些探索,有理解或是技术上的错误还请大家指出;其次我特别喜欢编写小例子来把一件事情说明白,故在文中会尽可能多的用示例加代码讲解,我相信这会是一种比较好的方式;最后,我深知 AngularJS 的使用方式跟 jquery 的使用方式有很大不同,在大家都有jquery、ext 经验的条件下对于 angular 的学习会困难重重,不过我更相信在大家的坚持下,能够快速的学好 AngularJS,至少咱也能深入了解到 AngularJS 的基本思想,对咱们以后自己
7、的插件开发、项目开发都会有很大的启示。2 AngularJS 概述2.1 AngularJS 是什么?AngularJs(后面就简称 ng 了)是一个用于设计动态 web 应用的结构框架。首先,它是一个框架,不是类库,是像 EXT 一样提供一整套方案用于设计 web 应用。它不仅仅是一个 javascript 框架,因为它的核心其实是对 HTML 标签的增强。何为 HTML 标签增强?其实就是使你能够用标签完成一部分页面逻辑,具体方式就是通过自定义标签、自定义属性等,这些 HTML 原生没有的标签/属性在 ng 中有一个名字:指令(directive) 。后面会详细介绍。那么,什么又是动态 w
8、eb 应用呢?与传统 web 系统相区别,web 应用能为用户提供丰富的操作,能够随用户操作不断更新视图而不进行 url 跳转。ng 官方也声明它更适用于开发 CRUD 应用,即数据操作比较多的应用,而非是游戏或图像处理类应用。为了实现这些,ng 引入了一些非常棒的特性,包括模板机制、数据绑定、模块、指令、依赖注入、路由。通过数据与模板的绑定,能够让我们摆脱繁琐的 DOM 操作,而将注意力集中在业务逻辑上。另外一个疑问,ng 是 MVC 框架吗?还是 MVVM 框架?官网有提到 ng 的设计采用了 MVC的基本思想,而又不完全是 MVC,因为在书写代码时我们确实是在用 ng-controlle
9、r 这个指令(起码从名字上看,是 MVC 吧),但这个 controller 处理的业务基本上都是与 view 进行交互,这么看来又很接近 MVVM。让我们把目光移到官网那个非醒目的 title 上:“AngularJS Superheroic JavaScript MVW Framework”。2.2 AngularJS 简单介绍AngularJS 重新定义了前端应用的开发方式。面对 HTML 和 JavaScript 之间的界线,AngularJS 学习文档5它非但不畏缩不前,反而正面出击,提出了有效的解决方案。很多前端应用的开发框架,比如 Backbone、EmberJS 等,都要求开发
10、者继承此框架特有的一些 JavaScript 对象。这种方式有其长处,但它不必要地污染了开发者自己代码的对象空间,还要求开发者去了解内存里那些抽象对象。尽管如此我们还是接受了这种方式,因为网络最初的设计无法提供 我们今天所需的交互性,于是我们需要框架,来帮我们填补JavaScript 和 HTML 之间的鸿沟。而且有了它,你不用再“直接”操控 DOM,只要给你的DOM 注上 metadata(即 AngularJS 里的 directive 们) ,然后让 AngularJS 来帮你操纵DOM。同时,AngularJS 不依赖(也不妨碍)任何其他的框架。你甚至可以基于其它的框架来开发 Angu
11、larJS 应用。API 地址:http:/docs.angularjs.org/api/;AngularJS 在 github 上的中文粗译版地址:https:/ 什么时候该用 AngularJSAngularJS 是一个 MV* 框架,最适于开发客户端的单页面应用。它不是个功能库,而是用来开发动态网页的框架。它专注于扩展 HTML 的功能,提供动态数据绑定(data binding) ,而且它能跟其它框架(如 jQuery)合作融洽。如果你要开发的是单页应用,AngularJS 就是你的上上之选。Gmail、Google Docs、Twitter 和 Facebook 这样的应用,都很能发
12、挥 AngularJS 的长处。但是像游戏开发之类对 DOM 进行大量操纵、又或者单纯需要 极高运行速度的应用,就不是 AngularJS 的用武之地了。3 AugularJS 特性AngularJS 是一个新出现的强大客户端技术,提供给大家的一种开发强大应用的方式。这种方式利用并且扩展 HTML,CSS 和 javascript,并且弥补了它们的一些非常明显的不足。本应该使用 HTML 来实现而现在由它开发的动态一些内容。AngularJS 有五个最重要的功能和特性:3.1 特性一:双向的数据绑定数据绑定可能是 AngularJS 最酷最实用的特性。它能够帮助你避免书写大量的初始代码从而节约
13、开发时间。一个典型的 web 应用可能包含了 80%的代码用来处理,查询和监听DOM。数据绑定是的代码更少,你可以专注于你的应用。我们想象一下 Model 是你的应用中的简单事实。你的 Model 是你用来读取或者更新的部分。数据绑定指令提供了你的 Model 投射到 view 的方法。这些投射可以无缝的,毫不影响的应用到 web 应用中。传统来说,当 model 变化了。 开发人员需要手动处理 DOM 元素并且将属性反映到这些变化中。这个一个双向的过程。一方面,model 变化驱动了 DOM 中元素变化,另一方面,DOM 元素的变化也会影响到 Model。这个在用户互动中更加复杂,因为开发人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AngularJS 学习 进修 分析 总结 详细 介绍

限制150内