《精通AngularJS》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)科兹洛夫斯基,(美)达尔文著
  • 出 版 社:武汉:华中科技大学出版社
  • 出版年份:2014
  • ISBN:9787568003964
  • 页数:348 页
图书介绍:本书全面系统的介绍了AngularJS框架。AngularJS是Google开发者设计和开发的一套前端开发框架,帮助简化前端开发的负担。AngularJS主要有以下几点优势:1)它是由互联网巨人Google组织开发的;这意味着它有更加强大的社区支持;2)AngularJS非常全面,没有其它的插件或者架构足以开发数据驱动的web应用;3)开发过程简单快捷。

第1章 Angular之禅 7

1.1 邂逅AngularJS 7

熟悉框架 8

参与AngularJS项目 8

社区 8

在线学习资源 9

库和扩展 9

工具 9

Batarang 10

Plunker与isFiddle 10

IDE扩展和插件 10

1.2 AngularJS速成 10

Hello World——AngularJS示例 10

双向数据绑定 12

AngularJS中的MVC模式 12

鸟瞰 13

深入作用域 15

视图 21

模块与依赖注入 26

模块 26

协作对象 27

注册服务 29

模块的生命周期 33

模块依赖 35

1.3 AngularJS和其他框架 38

jQuery与AngularJS 39

苹果与橙子 40

窥视未来 41

1.4 总结 41

第2章 构建与测试 43

2.1 介绍示例应用 44

熟悉问题领域 44

技术栈 45

持久化存储 46

MongoLab 46

服务器端环境 47

第三方JavaScript库 48

Bootstrap CSS 48

2.2 构建系统 48

构建系统准则 49

自动化所有事情 49

尽早报错,清晰报错 49

不同的工作流,不同的命令 50

构建脚本同样是代码 50

工具 50

Grunt.js 51

测试库与工具 51

Jasmine 51

Karma runner 52

2.3 组织文件和目录 52

根目录 52

进入源代码目录 54

AngularJS的特定文件 54

轻装上路 56

深入测试目录 57

文件命名约定 57

2.4 AngularJS模块和文件 57

一个文件,一个模块 58

模块内部 59

注册provider的不同语法 59

声明配置和运行块的语法 61

2.5 自动化测试 62

单元测试 63

剖析Jasmine测试 64

测试AngularJS对象 65

测试服务 65

测试控制器 67

Mock对象和异步代码测试 68

端对端测试 70

日常工作流 71

Karma runner的提示与技巧 72

执行测试子集 73

调试 73

2.6 小结 74

第3章 与后端服务器通信 75

3.1 使用$http进行XHR和JSONP请求 75

熟悉数据模型和MongoLab URLs 76

$http API快速导览 76

配置对象说明 77

转换请求数据 78

处理HTTP响应 79

转换响应数据 79

处理同源政策约束 79

利用JSONP克服同源政策约束 80

JSONP的限制 81

利用CORS克服同源政策约束 81

服务器端代理 83

3.2 promise API与$q 84

工作中的promise和$q服务 85

学习$q服务的基础知识 85

promise是第一类JavaScript对象 87

聚合回调 88

注册回调和承诺的生命周期 88

异步动作的链式调用 89

关于$q的其他 91

AngularJS中的$q集成 93

3.3 promise API与$http 94

3.4 与RESTful端点通信 95

$resource服务 95

构造级与实例级方法 97

$resource创建异步方法 100

$resource服务的限制 101

使用$http自定义REST适配器 101

3.5 使用$http的高级特性 104

截取响应 104

3.6 测试与$http交互的代码 106

3.7 小结 108

第4章 显示与格式化数据 109

4.1 引用指令 109

4.2 显示表达式的求值结果 110

插值指令 110

利用ngBind渲染模型值 111

AngularJS表达式中的HTML内容 111

4.3 条件化显示 112

根据条件包含内容块 114

4.4 用ngRepeat指令渲染集合 114

熟悉ngRepeat指令 115

特殊变量 115

迭代对象的属性 116

ngRepeat模式 117

列表和细节 117

改动表格、行和类 119

4.5 DOM事件处理器 120

4.6 基于DOM的模板 121

习惯烦琐的语法 121

ngRepeat和多个DOM元素 122

不能在运行时修改的元素和属性 123

自定义HTML元素与IE的老版本 124

4.7 使用过滤器处理模型变换 124

内置过滤器 125

格式化过滤器 125

数组变换过滤器 125

编写自定义过滤器——分页示例 131

从JavaScript代码中访问过滤器 133

过滤器做什么与不做什么 134

过滤器与DOM操作 135

过滤器中代价高昂的数据变换 136

不稳定的过滤器 136

4.8 摘要 138

第5章 创建高级表单 139

5.1 AngularJS表单与传统表单的比较 139

介绍ngModel指令 141

5.2 创建用户信息表单 142

5.3 理解输入指令 143

添加所需验证 143

使用基于文本的输入(text、textarea、e-mail、URL、number) 143

使用checkbox输入 144

使用radio输入 145

使用select输入 145

提供简单的字符串options 145

利用ngOptions指令提供动态options 146

select指令与空的options 148

理解select和对象判等 149

选择多个options 150

运用传统的HTML hidden input字段 150

嵌入来自服务器的值 150

提交传统的HTML表单 151

5.4 详解ngModel数据绑定 151

理解ngModelController 151

在模型与视图之间转换值 152

追踪值是否变化 152

跟踪input字段有效性 153

5.5 校验AngularJS表单 153

理解ngFormController 153

运用name属性将表单附加到作用域上 154

为用户信息表单增加动态行为 154

显示验证错误 155

让保存按钮无效 156

使原生浏览器校验无效 157

5.6 在其他表单中嵌套表单 157

将子表单作为可重用组件 157

5.7 重复子表单 158

验证重复输入 159

5.8 处理传统的HTML表单提交 161

直接向服务器提交表单 161

处理表单提交事件 161

使用ngSubmit处理表单提交 162

使用ngClick处理表单提交 162

5.9 重置用户信息表单 162

5.10 摘要 164

第6章 导航 165

6.1 单页Web应用的URL 166

HTML5之前的Hashbang URL 166

HTML5和history API 167

6.2 使用$location服务 168

理解$location服务API与URL的关系 169

哈希、页面内导航和$anchorScroll 170

配置HTML5方式的URL 171

客户端 171

服务端 171

使用$location导航 172

根据路由构建页面 173

路由映射URL 174

定义路由时指定控制器 174

导航的不足 175

6.3 使用AngularJS自带的路由服务 175

基础路由定义 175

显示匹配的路由内容 176

匹配灵活的路由 177

定义默认路由 178

访问路由参数 178

多个控制器重用局部模板 178

路由改变时避免UI抖动 179

取消路由更新 181

6.4 $route服务的局限 182

一个路由只对应页面中的一个区域 183

使用ng-include处理多个UI区域 183

不支持嵌套路由 184

6.5 路由相关的模式及技巧 185

处理链接 185

创建可点击的链接 186

兼容HTML5及hashbang模式 186

链接外部页面 187

组织路由定义 187

将路由定义分离到多个模块 188

减少路由定义的重复代码 188

6.6 总结 189

第7章 安全 191

7.1 提供服务端认证和授权 192

处理未授权的访问 192

提供服务端验证API 192

7.2 保护局部模板 193

7.3 阻止恶意攻击 194

防止cookie监听、中间人攻击 194

防止跨站脚本攻击 195

确保AngularJS表达式内HTML内容的安全性 195

允许不安全的HTML绑定 196

净化HTML 196

防止JSON注入攻击 197

防止跨站请求伪造 198

7.4 客户端安全 198

创建security服务 199

显示登录表单 200

创建安全的菜单及工具栏 201

隐藏菜单项 201

创建登录工具栏 202

7.5 支持客户端认证 203

处理认证失败 203

拦截响应 204

HTTP响应拦截器 204

创建securityInterceptor服务 205

创建securityRetryQueue服务 207

通知安全服务 208

7.6 防止导航到安全受限路由 208

使用路由resolve函数 209

创建授权服务 210

7.7 总结 212

第8章 创建自定义指令 213

8.1 什么是AngularJS指令 214

理解内置指令 214

在HTML标签中使用指令 215

8.2 指令的编译生命周期 215

8.3 为指令编写单元测试 217

8.4 定义指令 218

8.5 使用指令修改按钮样式 219

编写一个按钮指令 220

8.6 理解AngularJS的组件指令 222

编写一个分页指令 222

为分页指令编写单元测试代码 223

在指令中使用HTML模板 224

从父作用域中隔离指令 225

使用@插入属性 226

使用=绑定数据 227

使用&提供一个回调表达式 227

实现分页组件 228

为指令添加分页跳转回调 229

8.7 创建一个自定义验证指令 230

需要其他指令的控制器 231

可选的依赖控制器 231

查找祖先元素的控制器 232

使用ngModelController 232

编写自定义验证指令的单元测试 233

实现自定义验证指令 235

8.8 创建一个异步模型验证器 235

模拟用户服务 236

为异步验证编写测试代码 237

实现异步验证指令 238

8.9 包装jQueryUIdatepicker指令 239

为包装组件指令编写测试代码 240

实现jQuery datepicker指令 242

8.10 小结 243

第9章 创建高级指令 245

9.1 使用嵌入 245

在指令中使用嵌入 245

在独立作用域指令中使用嵌入 246

创建一个使用嵌入的提示指令 246

理解指令定义中的replace属性 247

理解指令定义中的transclude属性 248

使用ng-transclude插入嵌入元素 248

理解嵌入作用域 248

9.2 创建和使用嵌入函数 250

使用$compile服务创建一个嵌入函数 251

在嵌入时克隆原始元素 251

在指令中访问嵌入函数 252

通过编译函数中的transcludeFn来获取嵌入函数 252

通过$transclude在指令控制器中获取嵌入函数 253

使用嵌入创建一个if指令 253

在指令中使用priority属性 255

9.3 理解指令控制器 256

为指令控制器注入特殊依赖 257

创建一个基于控制器的分页指令 258

理解指令控制器和链接函数的区别 258

注入依赖 259

编译过程 259

获取其他控制器 260

获取嵌入函数 261

创建一个手风琴指令套件 261

在手风琴组件中使用指令控制器 262

实现accordion指令 263

实现accordion-group指令 263

9.4 控制编译过程 265

创建一个field指令 265

在指令中使用terminal属性 267

使用$interpolate服务 268

绑定验证信息 269

动态加载模板 269

设置eld指令的模板 270

9.5 小结 271

第10章 创建为全球用户服务的AngularJS应用 273

10.1 使用本地化的符号和设置 274

配置本地化设置模块 274

使用已有的本地化设置 275

本地化设置和AngularJS过滤器 275

10.2 处理翻译 277

翻译AngularJS模板中的字符串 277

使用过滤器 278

使用指令 279

翻译JavaScript代码中的字符串 280

10.3 范式、秘诀和技巧 282

按照设定的地区初始化应用 282

将地区标识作为URL一部分带来的问题 283

切换地区 284

针对日期、数字和货币的自定义过滤器 285

10.4 小结 287

第11章 开发健壮的AngularJS应用 289

11.1 理解AngularJS的内部运作机制 290

AngularJS不是基于字符串的模板引擎 290

响应DOM事件更新模型 291

将模型变化传播给DOM 291

同步DOM和模型变化 292

Scope.$apply——打开AngularJS世界的钥匙 293

深入$digest循环 295

整合 300

11.2 性能优化——设置期望值、测量、调节、并重复 301

11.3 AngularJS应用的性能优化 303

优化CPU使用率 303

加速$digest循环 303

尽可能少进入$digest循环 310

限制每个$digest循环的执行轮数 312

优化内存占用 312

尽可能避免深度监视 312

注意监视表达式的大小 314

ng-repeat指令 314

ng-repeat指令中对集合的监视 314

瞬间绑定大量监视 315

11.4 小结 315

第12章 打包和部署AngularJS Web应用 317

12.1 提升网络相关的性能 318

压缩静态资源 318

AngularJS如何判断依赖关系 318

编写会被安全压缩的JavaScript代码 319

数组风格依赖注入的缺陷 322

模板预加载 323

使用<script>指令预加载模板 324

填充$templateCache服务 325

组合使用不同的预加载技术 327

12.2 优化首页 327

避免显示未经处理的模板 328

使用ng-cloak指令隐藏DOM元素 328

使用ng-bind指令隐藏表达式 329

引入AngularJS和应用脚本文件 330

引用脚本文件 330

AngularJS和异步模块定义 331

12.3 浏览器支持 333

在Internet Explorer中使用 333

12.4 小结 334

索引 337