
AngularJS权威教程封面
作 者:(美)Ari Lerner
出 版 社:人民邮电出版社
出版时间:2014-08-01
字 数:46.3万
所属分类: 科技 > 计算机/网络 > 程序设计
本书包含了能让你成为AngularJS②高手的解决方案。AngularJS是由Google③开发的先进前端
框架,借助它你可以快捷高效地开发富交互应用。
本书提供了一系列前沿工具,使你在很短的时间内就可以上手创建令人印象深刻的Web体
验。它能帮助你解决棘手的问题,并提供了一些可以立刻投入使用的实用技术。
本书涵盖的主题可以帮助你构建专业的Web应用,并能够非常顺利地执行。这些主题包括:
与RESTful风格的Web服务交互;
创建可复用的自定义组件;
测试;
异步编程;
创建服务;
提供先进的视觉效果;
其他更多内容。
本书的目标不仅是让你深刻了解AngularJS的运行原理,而且同时也提供了专业的代码片段,
你可以对它们进行修改,从而构建你自己的应用。
借助这些工具和测试,你可以着手使用AngularJS开发自己的动态Web应用了,并且确信你的
应用是可扩展的。
目 录
第 1 章 初识 AngularJS………………………………1
1.1 浏览器如何获取网页……………………………..1
1.2 浏览器是什么………………………………………..2
1.3 AngularJS 是什么 …………………………………..2
1.3.1 AngularJS 有什么不同………………….3
1.3.2 许可……………………………………………3
第 2 章 数据绑定和第一个 AngularJS
Web 应用…………………………………………4
2.1 AngularJS 中的数据绑定 ………………………..5
2.2 简单的数据绑定…………………………………….6
2.3 数据绑定的最佳实践……………………………..8
第 3 章 模块 ……………………………………………….10
3.1 参数…………………………………………………….11
3.1.1 name(字符串) ………………………..11
3.1.2 requires(字符串数组)…………..11
第 4 章 作用域……………………………………………12
4.1 视图和$scope 的世界 …………………………..12
4.2 就是 HTML 而已………………………………….13
4.3 作用域能做什么…………………………………..14
4.4 $scope 的生命周期 ………………………………14
4.4.1 创建………………………………………….15
4.4.2 链接………………………………………….15
4.4.3 更新………………………………………….15
4.4.4 销毁………………………………………….15
4.5 指令和作用域………………………………………15
第 5 章 控制器……………………………………………16
5.1 控制器嵌套(作用域包含作用域) ………18
第 6 章 表达式……………………………………………20
6.1 解析 AngularJS 表达式 …………………………20
6.2 插值字符串………………………………………….21
第 7 章 过滤器……………………………………………24
7.1 自定义过滤器………………………………………29
7.2 表单验证……………………………………………..29
第 8 章 指令简介………………………………………..43
8.1 指令:自定义 HTML 元素和属性 …………44
8.2 向指令中传递数据……………………………….50
第 9 章 内置指令………………………………………..56
9.1 基础 ng 属性指令…………………………………56
9.1.1 布尔属性…………………………………..56
9.1.2 类布尔属性……………………………….58
9.2 在指令中使用子作用域………………………..59
第 10 章 指令详解……………………………………..72
10.1 指令定义……………………………………………72
10.1.1 restrict(字符串) ……………..74
10.1.2 优先级(数值型) …………………75
10.1.3 terminal(布尔型) ……………..75
10.1.4 template(字符串或函数)……76
10.1.5 templateUrl(字符串或
函数)…………………………………..76
10.1.6 replace(布尔型) ……………….77
10.2 指令作用域………………………………………..77
10.2.1 scope 参数(布尔型或对象)….78
10.2.2 隔离作用域……………………………80
10.3 绑定策略……………………………………………81
10.3.1 transclude ……………………………82
10.3.2 controller(字符串或函数)….84
10.3.3 controllerAs(字符串)……….86
10.3.4 require(字符串或数组)……..86
10.4 AngularJS 的生命周期 ………………………..87
10.4.1 编译阶段……………………………….87
10.4.2 compile(对象或函数)…………88
10.4.3 链接………………………………………89
10.5 ngModel……………………………………………..90
10.5.1 自定义渲染……………………………92
10.5.2 属性………………………………………92
10.6 自定义验证………………………………………..93
图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权
2 目 录
第 11 章 AngularJS 模块加载………………….. 95
11.1 配置 …………………………………………………. 95
11.2 运行块 ……………………………………………… 96
第 12 章 多重视图和路由…………………………. 98
12.1 安装 …………………………………………………. 98
12.2 布局模板 ………………………………………….. 99
12.3 路由 …………………………………………………. 99
12.4 $location 服务……………………………….. 103
12.5 路由模式 ………………………………………… 105
12.5.1 HTML5 模式 ………………………. 105
12.5.2 路由事件…………………………….. 106
12.5.3 关于搜索引擎索引………………. 107
12.6 更多关于路由的内容……………………….. 107
12.6.1 页面重新加载……………………… 107
12.6.2 异步的地址变化………………….. 107
第 13 章 依赖注入…………………………………… 108
13.1 推断式注入声明………………………………. 109
13.2 显式注入声明 …………………………………. 110
13.3 行内注入声明 …………………………………. 110
13.4 $injector API ………………………………… 111
13.4.1 annotate()…………………………. 111
13.4.2 get()………………………………….. 111
13.4.3 has()………………………………….. 111
13.4.4 instantiate()……………………. 112
13.4.5 invoke()…………………………….. 112
13.5 ngMin ……………………………………………… 112
13.5.1 安装 …………………………………… 113
13.5.2 使用 ngMin………………………….. 113
13.5.3 工作原理…………………………….. 113
第 14 章 服务…………………………………………… 114
14.1 注册一个服务 …………………………………. 114
14.2 使用服务 ………………………………………… 116
14.3 创建服务时的设置项……………………….. 118
14.3.1 factory()…………………………… 119
14.3.2 service()…………………………… 119
14.3.3 provider()…………………………. 120
14.3.4 constant()…………………………. 122
14.3.5 value()………………………………. 122
14.3.6 何时使用 value()和
constant()…………………………. 123
14.3.7 decorator()……………………….. 123
第 15 章 同外界通信:XHR 和服务器
通信…………………………………………… 125
15.1 使用$http ………………………………………. 125
15.2 设置对象 ………………………………………… 128
15.3 响应对象 ………………………………………… 130
15.4 缓存 HTTP 请求………………………………. 131
15.5 拦截器 ……………………………………………. 132
15.6 设置$httpProvider…………………………. 133
15.7 使用$resource………………………………… 134
15.8 安装 ……………………………………………….. 134
15.9 应用$resource………………………………… 135
15.9.1 基于 HTTP GET 方法………….. 135
15.9.2 基于非 HTTP GET 类型的
方法…………………………………… 136
15.9.3 $resource 实例…………………… 137
15.9.4 $resource 实例是异步的…….. 138
15.9.5 附加属性 ……………………………. 138
15.10 自定义$resource 方法…………………… 138
15.11 $resource 设置对象………………………. 139
15.12 $resource 服务……………………………… 141
15.13 使用 Restangular ……………………………. 142
15.14 Restangular 简介…………………………….. 142
15.15 安装 Restangular ……………………………. 143
15.16 Restangular 对象简介……………………… 144
15.17 使用 Restangular ……………………………. 145
15.17.1 我的 HTTP 方法们怎么办…. 146
15.17.2 自定义查询参数和头……….. 147
15.18 设置 Restangular ……………………………. 147
第 16 章 XHR 实践…………………………………. 153
16.1 跨域和同源策略 ……………………………… 153
16.2 JSONP ……………………………………………. 153
16.3 使用 CORS……………………………………… 154
16.3.1 设置 …………………………………… 154
16.3.2 服务器端 CORS 支持 ………….. 155
16.3.3 简单请求 ……………………………. 155
16.3.4 非简单请求…………………………. 156
16.4 服务器端代理 …………………………………. 157
16.5 使用 JSON………………………………………. 157
16.6 使用 XML ………………………………………. 158
16.7 使用 AngularJS 进行身份验证………….. 159
16.7.1 服务器端需求……………………… 159
16.7.2 客户端身份验证………………….. 160
16.8 和 MongoDB 通信……………………………. 165
图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权
目 录 3
第 17 章 promise ……………………………………..168
17.1 什么是 promise …………………………………168
17.2 为什么使用 promise ………………………….169
17.3 Angular 中的 promise ………………………..170
17.4 链式请求………………………………………….173
17.4.1 all(promises)……………………..174
17.4.2 defer() ……………………………….174
17.4.3 reject(reason)……………………174
17.4.4 when(value) ………………………..174
第 18 章 服务器通信………………………………..175
18.1 自定义服务器端……………………………….175
18.2 安装 NodeJS……………………………………..175
18.3 安装 Express…………………………………….176
18.4 调用 API ………………………………………….178
18.5 使用 Amazon AWS 的无服务器应用 ….181
18.5.1 DynamoDB…………………………..181
18.5.2 简单通知服务(SNS)…………181
18.5.3 简单队列服务(SQS,
Simple Queue Service) ………..182
18.5.4 简单存储服务(S3)……………182
18.5.5 安全令牌服务(STS) …………182
18.6 AWSJS + Angular……………………………..182
18.7 开始…………………………………………………182
18.8 介绍…………………………………………………184
18.9 安装…………………………………………………184
18.10 运行……………………………………………….185
18.11 用户认证/鉴权………………………………..186
18.12 UserService …………………………………..190
18.13 迁移到 AWS 上 ………………………………191
18.14 AWSService ……………………………………194
18.15 在 Dynamo 上开始…………………………..196
18.16 $cacheFactory ……………………………….196
18.17 保存 currentUser …………………………..197
18.18 上传到 S3……………………………………….199
18.19 处理文件上传…………………………………201
18.20 查询 Dynamo ………………………………….203
18.21 在 HTML 显示列表…………………………204
18.22 出售我们的作品……………………………..205
18.23 使用 Stripe ……………………………………..206
18.24 使用 Firebase 的无服务器应用…………209
18.25 使用 Firebase 和 Angular 的三方
数据绑定………………………………………..210
18.26 从 AngularFire 开始…………………………211
18.26.1 注册并创建一个 Firebase…..211
18.26.2 包含 Firebase 和 AngularFire
库…………………………………….212
18.26.3 把 Firebase 作为依赖项
添加…………………………………212
18.26.4 绑定模型到 Firebase URL….212
18.26.5 数据同步………………………….213
18.27 在 AngularFire 中排序……………………..214
18.28 Firebase 事件…………………………………..215
18.29 显式同步………………………………………..215
18.30 用 AngularFire 进行认证………………….216
18.31 认证事件………………………………………..217
18.31.1 $logout() ………………………..218
18.31.2 $createUser()………………….218
18.32 使用 Firebase 托管部署你的 Angular
应用……………………………………………….218
18.32.1 安装 Firebase 工具…………….218
18.32.2 部署你的 Web 站点…………..219
18.33 除了 AngularFire 之外……………………..219
第 19 章 测试……………………………………………220
19.1 为什么要做测试……………………………….220
19.2 测试策略………………………………………….220
19.3 开始测试………………………………………….220
19.4 AngularJS 测试的类型 ………………………221
19.4.1 单元测试……………………………..221
19.4.2 端到端测试………………………….222
19.5 开始…………………………………………………222
19.6 初始化 Karma 配置文件 ……………………223
19.7 配置选项………………………………………….226
19.8 使用 RequireJS …………………………………231
19.9 Jasmine…………………………………………….233
19.9.1 细则套件……………………………233
19.9.2 定义一个细则…………………….233
19.10 预期……………………………………………….234
19.10.1 内置的匹配器…………………..234
19.10.2 安装和卸载………………………237
19.11 端到端的介绍…………………………………238
19.11.1 选项输入………………………….244
19.11.2 重复循环元素…………………..244
19.12 模拟和测试帮助函数………………………245
19.13 模拟$httpBackend ………………………….246
19.14 测试一个应用…………………………………251
19.14.1 测试路由………………………….252
19.14.2 测试页面内容…………………..255
19.14.3 测试控制器………………………257
图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权
4 目 录
19.14.4 测试服务和工厂………………. 259
19.14.5 测试过滤器……………………… 263
19.14.6 测试模板…………………………. 264
19.14.7 测试指令…………………………. 266
19.15 测试事件 ………………………………………. 269
19.16 对 Angular 的持续集成…………………… 270
19.17 Protractor ………………………………………. 270
19.18 配置 ……………………………………………… 272
19.19 配置选项 ………………………………………. 273
19.20 编写测试 ………………………………………. 275
19.21 测试实践 ………………………………………. 278
19.21.1 我们的应用……………………… 278
19.21.2 测试的策略……………………… 279
19.22 建立我们的第一个测试………………….. 279
19.23 测试输入框 …………………………………… 281
19.23.1 测试列表…………………………. 282
19.23.2 测试路由…………………………. 284
19.24 页面对象 ………………………………………. 285
第 20 章 事件…………………………………………… 287
20.1 什么是事件 …………………………………….. 287
20.2 事件传播 ………………………………………… 287
20.2.1 使用$emit 来冒泡事件………… 288
20.2.2 使用$broadcast 向下传递
事件 …………………………………… 288
20.3 事件监听 ………………………………………… 289
20.4 事件对象 ………………………………………… 289
20.5 事件相关的核心服务……………………….. 290
20.5.1 核心系统的$emitted 事件…… 290
20.5.2 核心系统的$broadcast
事件 …………………………………… 290
第 21 章 架构…………………………………………… 292
21.1 目录结构 ………………………………………… 292
21.2 模块 ……………………………………………….. 293
21.3 控制器 ……………………………………………. 294
21.4 指令 ……………………………………………….. 296
21.5 测试 ……………………………………………….. 296
第 22 章 Angular 动画 ……………………………. 297
22.1 安装 ……………………………………………….. 297
22.2 它是如何运作的………………………………. 297
22.3 使用 CSS3 过渡……………………………….. 298
22.4 使用 CSS3 动画……………………………….. 300
22.5 交错 CSS 过渡/动画…………………………. 301
22.5.1 交错 CSS 过渡…………………….. 301
22.5.2 交错 CSS 动画…………………….. 302
22.5.3 什么指令支持交错动画……….. 302
22.6 使用 JavaScript 动画………………………… 302
22.7 微调动画 ………………………………………… 303
22.8 DOM 回调事件 ……………………………….. 304
22.9 内置指令的动画 ……………………………… 304
22.9.1 ngRepeat 动画…………………….. 304
22.9.2 ngView 动画………………………… 306
22.9.3 ngInclude 动画…………………… 308
22.9.4 ngSwitch 动画…………………….. 310
22.9.5 ngIf 动画……………………………. 312
22.9.6 ngClass 动画………………………. 314
22.9.7 ngShow/ngHide 动画……………. 316
22.10 创建自定义动画 ……………………………. 318
22.10.1 addClass()……………………… 319
22.10.2 removeClass()………………… 320
22.10.3 enter()…………………………… 321
22.10.4 leave()…………………………… 322
22.10.5 move()…………………………….. 323
22.11 与第三方库集成 ……………………………. 324
22.11.1 Animate.css……………………… 324
22.11.2 TweenMax/TweenLite ………. 324
第 23 章 digest 循环和$apply…………………. 326
23.1 $watch 列表…………………………………….. 326
23.2 脏值检查 ………………………………………… 327
23.3 $watch ……………………………………………. 328
23.4 $watchCollection…………………………… 330
23.5 页面中的$digest 循环…………………….. 330
23.6 $evalAsync 列表……………………………… 331
23.7 $apply ……………………………………………. 332
23.8 何时使用$apply………………………………. 332
第 24 章 揭秘 Angular……………………………. 334
24.1 视图的工作原理 ……………………………… 335
24.1.1 编译阶段 ……………………………. 335
24.1.2 运行时 ……………………………….. 336
第 25 章 AngularJS 精华扩展 ……………….. 337
25.1 AngularUI……………………………………….. 337
25.2 安装 ……………………………………………….. 337
25.3 ui-router……………………………………….. 337
25.3.1 安装 …………………………………… 337
25.3.2 事件 …………………………………… 342
25.3.3 $stateParams……………………… 343
25.3.4 $urlRouterProvider …………… 344
图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权
目 录 5
25.3.5 创建一个导航程序 ……………….345
25.4 ui-utils………………………………………….346
25.4.1 安装…………………………………….347
25.4.2 mask…………………………………….347
25.4.3 ui-event ……………………………..347
25.4.4 ui-format ……………………………348
第 26 章 移动应用 ……………………………………350
26.1 响应式 Web 应用………………………………350
26.2 交互…………………………………………………350
26.2.1 安装…………………………………….350
26.2.2 ngTouch ……………………………….351
26.2.3 $swipe 服务 …………………………352
26.2.4 angular-gestures 和多点
触控手势……………………………..353
26.2.5 安装 angular-gestures………..354
26.2.6 使用 angular-gestures………..354
26.3 Cordova 中的原生应用程序……………….355
26.4 Cordova 入门 ……………………………………356
26.4.1 Cordova 开发流程…………………359
26.4.2 平台…………………………………….359
26.4.3 插件…………………………………….359
26.4.4 构建…………………………………….360
26.4.5 模拟和运行………………………….360
26.4.6 开发阶段……………………………..360
26.4.7 Anguar 中的 Cordova 服务…….361
26.5 引入 Angular…………………………………….362
26.6 使用 Yeoman 构建…………………………….363
26.6.1 修改 Yeoman 以便使用
Cordova ……………………………….364
26.6.2 装配 Yeoman 构建………………..365
26.6.3 构建移动部分………………………365
26.6.4 处理引导程序………………………367
第 27 章 本地化………………………………………..369
27.1 angular-translate…………………………..369
27.2 安装…………………………………………………369
27.3 教你的应用一种新语言 …………………….370
27.4 多语言支持………………………………………371
27.5 运行时切换语言……………………………….372
27.6 加载语言………………………………………….373
27.7 angular-gettext ……………………………..374
27.8 安装…………………………………………………374
27.9 用法…………………………………………………375
27.10 字符串提取…………………………………….375
27.11 翻译字符串…………………………………….377
27.12 编译新语言…………………………………….378
27.13 改变语言………………………………………..379
第 28 章 缓存……………………………………………381
28.1 什么是缓存………………………………………381
28.2 Angular 中的缓存……………………………..381
28.2.1 $cacheFactory 简介……………..381
28.2.2 缓存对象……………………………..382
28.3 $http 中的缓存………………………………..382
28.3.1 默认的$http 缓存 ………………..382
28.3.2 自定义缓存………………………….383
28.4 为$http 设置默认缓存 ……………………..384
第 29 章 安全性………………………………………..385
29.1 严格的上下文转义:$sce 服务 …………385
29.2 URL 白名单……………………………………..387
29.3 URL 黑名单……………………………………..388
29.4 $sce API ………………………………………….388
29.4.1 getTrusted ………………………….388
29.4.2 parse…………………………………..389
29.4.3 trustAs ……………………………….389
29.4.4 isEnabled ……………………………390
29.5 配置$sce………………………………………….390
29.6 可信赖的上下文类型………………………..390
第 30 章 AngularJS 和 IE 浏览器……………391
30.1 Ajax 缓存 …………………………………………393
30.2 AngularJS 中的 SEO………………………….393
30.3 使 Angular 应用可被索引 ………………….393
30.4 服务端……………………………………………..393
30.4.1 hashbang 语法 ………………………394
30.4.2 HTML5 路由模式…………………394
30.5 服务端处理 SEO 的选项……………………394
30.5.1 使用 Node/Express 中间件…….395
30.5.2 使用 Apache 重写 URL …………395
30.5.3 使用 Ngnix 代理 URL …………..396
30.6 获取快照………………………………………….396
30.7 使用 Zombie.js 获取 HTML 快照 ……….397
30.8 使用 grunt-html-snapshot……………….398
30.9 Prerender.io ………………………………………399
30.10 <noscript>方法 ……………………………..400
第 31 章 构建 Angular Chrome 应用……..401
31.1 了解 Chrome 应用 …………………………….401
31.1.1 manifest.json…………………………401
31.1.2 背景脚本……………………………..401
图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权
6 目 录
31.1.3 视图 …………………………………… 401
31.2 构建你的 Chrome 应用…………………….. 402
31.3 搭建框架 ………………………………………… 402
31.4 manifest.json……………………………………. 403
31.5 tab.html …………………………………………… 404
31.6 在 Chrome 中加载应用…………………….. 405
31.7 主模块 ……………………………………………. 406
31.8 构建主页 ………………………………………… 406
31.9 使用 Wundergroud 的天气 API …………. 408
31.10 设置界面 ………………………………………. 411
31.11 实现用户服务 ……………………………….. 413
31.12 城市自动填充/自动完成…………………. 415
31.13 添加时区支持 ……………………………….. 418
第 32 章 优化 Angular 应用……………………. 421
32.1 优化什么 ………………………………………… 421
32.2 优化$digest 循环……………………………. 421
32.3 优化 ng-repeat……………………………….. 423
32.4 优化$digest 调用……………………………. 423
32.5 优化$watch 函数……………………………… 424
32.5.1 bindonce……………………………… 425
32.5.2 $watch 函数的自动优化………. 427
32.6 优化过滤器 …………………………………….. 427
32.6.1 不变的数据…………………………. 427
32.6.2 过滤后的数据……………………… 427
32.7 页面加载优化技巧…………………………… 428
32.7.1 压缩 …………………………………… 429
32.7.2 利用$templateCache …………… 429
第 33 章 调试 AngularJS……………………….. 430
33.1 从 DOM 中调试 ………………………………. 430
33.1.1 scope()………………………………. 431
33.1.2 controller()……………………… 431
33.1.3 injector()…………………………. 431
33.1.4 inheritedData()………………… 431
33.2 调试器 ……………………………………………. 431
33.3 Angular Batarang……………………………… 432
33.3.1 安装 Batarang ……………………… 432
33.3.2 检查模型…………………………….. 433
33.3.3 检查性能…………………………….. 433
33.3.4 检查依赖图表……………………… 434
33.3.5 可视化应用…………………………. 434
第 34 章 下一步………………………………………. 435
34.1 jqLite 和 jQuery……………………………….. 435
34.2 了解基本工具 …………………………………. 436
34.3 Grunt………………………………………………. 436
34.4 grunt-angular-templates ………………. 439
34.4.1 安装 …………………………………… 439
34.4.2 用法 …………………………………… 440
34.4.3 可用选项 ……………………………. 440
34.4.4 用法 …………………………………… 442
34.5 Lineman ………………………………………….. 443
34.6 Bower……………………………………………… 445
34.6.1 安装 …………………………………… 445
34.6.2 Bower 简介…………………………. 445
34.6.3 配置 Bower…………………………. 446
34.6.4 搜索程序包…………………………. 447
34.6.5 安装程序包…………………………. 447
34.6.6 使用程序包…………………………. 447
34.6.7 移除程序包…………………………. 448
34.7 Yeoman…………………………………………… 448
34.7.1 安装 …………………………………… 448
34.7.2 用法 …………………………………… 449
34.7.3 创建路由 ……………………………. 451
34.7.4 创建控制器…………………………. 451
34.7.5 创建自定义指令………………….. 451
34.7.6 创建自定义过滤器………………. 451
34.7.7 创建视图 ……………………………. 451
34.7.8 创建服务 ……………………………. 452
34.7.9 创建装饰器…………………………. 452
34.8 配置 Angular 生成器………………………… 452
34.8.1 CoffeeScript ………………………… 452
34.8.2 安全压缩 ……………………………. 452
34.8.3 跳过索引 ……………………………. 452
34.9 测试应用 ………………………………………… 452
34.10 打包应用 ………………………………………. 453
34.11 打包模板 ………………………………………. 453
第 35 章 总结 ………………………………………….. 456
图灵程序设计丛书七百多册+图灵电子与电气工程丛书72本+图灵原版数学·统计学系列49本 PDF下载
代找资源网不售卖任何资源,只提供代找服务
QQ客服
微信客服

评论0