新書推薦:
《
潜水指南 全彩图解第4版
》
售價:HK$
132.2
《
超大规模集成电路设计——从工具到实例
》
售價:HK$
88.5
《
村上春树·旅(一本充满村上元素的旅行指南,带你寻访电影《挪威的森林》拍摄地,全彩印刷;200余幅摄影作品)
》
售價:HK$
66.1
《
智能驾驶硬件在环仿真测试与实践
》
售價:HK$
155.7
《
都铎王朝时期英格兰海事法庭研究
》
售價:HK$
87.4
《
中年成长:突破人生瓶颈的心理自助方案
》
售價:HK$
65.0
《
维奥莱塔:一个女人的一生
》
售價:HK$
76.2
《
商业银行担保管理实务全指引
》
售價:HK$
144.5
|
編輯推薦: |
即便是一位希望从事Web 前端开发工作的新手,考虑到Angular 框架陡峭的学习曲线,也不要担心,《Angular 5 高级编程第2版》由易到难的循序渐进式风格可以极大地降低学习Angular 框架的门槛,降低学习痛苦指数。而对于经验丰富的前端老兵,尽管具有Angular 框架使用经验,《Angular 5 高级编程第2版》书也值得推荐,因为内容已经升级到Angular 5,能助你快速将项目升级到Angular 框架的新版,充分利用新框架的强大功能。
|
內容簡介: |
《Angular 5 高级编程第2版》内容已经全面更新到*版Angular 5!本书将告知读者如何充分利用领先的一体化框架 Angular 5来构建动态的JavaScript应用程序。畅销书作家Adam Freeman首先介绍了MVC模式及其 优势,然后展示了如何在项目中使用Angular框架,从*基本的功能开始,逐步建立*和复 杂的功能,深入理解开发Angular应用程序所需的知识。 《Angular 5 高级编程第2版》对每个主题的诠释都非常清晰且简洁凝练,并且包含大量能够助你学以致用的细节,以 务实的视角深入讨论Angular框架*重要的一些功能,每章都包括常见问题并详细讲解如何避免 这些问题发生。 《Angular 5 高级编程第2版》特色: ● 如何在架构层面深入理解MVC模式 ● 如何使用Angular 5创建丰富而动态的Web应用程序客户端 ● 如何扩展和定制Angular 5 ● 如何测试Angular 5项目
|
關於作者: |
Adam Freeman是一位经验丰富的IT专业人士,曾在一系列公司担任过高级职位,曾经担任一家全球银行的首席技术官和首席运营官。退休之后,他热衷于写作和长跑。
|
目錄:
|
■?■?■
目 录
第1章 准备工作 1
1.1 需要了解什么 1
1.2 本书结构 1
1.2.1 第1部分:准备 2
1.2.2 第2部分:使用Angular 2
1.2.3 第3部分:Angular的
高级功能 2
1.3 大量示例 2
1.4 获取示例代码 4
1.5 如何搭建开发环境 4
1.6 联系作者 4
1.7 本章小结 4
第2章 第一个Angular应用程序 5
2.1 准备开发环境 5
2.1.1 安装Node.js 5
2.1.2 安装angular-cli包 6
2.1.3 安装Git 6
2.1.4 安装编辑器 7
2.1.5 安装浏览器 7
2.2 创建并准备项目 8
2.2.1 创建项目 8
2.2.2 创建包文件 8
2.2.3 启动服务器 10
2.2.4 编辑HTML文件 11
2.3 向项目中添加Angular功能 13
2.3.1 准备HTML文件 14
2.3.2 创建数据模型 14
2.3.3 创建模板 17
2.3.4 创建组件 17
2.3.5 将应用程序组合起来 19
2.4 向示例应用程序中添加功能 21
2.4.1 添加待办事项表格 21
2.4.2 创建双向数据绑定 25
2.4.3 添加待办事项 27
2.5 本章小结 29
第3章 创建项目 31
3.1 准备创建项目 31
3.2 创建项目 32
3.2.1 创建项目的Angular部分 33
3.2.2 创建项目的ASP.NET
Core MVC部分 34
3.3 配置项目 35
3.3.1 准备项目Visual Studio 35
3.3.2 创建和编辑配置文件 36
3.3.3 启用日志消息 39
3.3.4 更新Bootstrap包 39
3.3.5 移除文件 40
3.3.6 更新控制器、布局和视图 40
3.4 运行项目 42
3.5 理解合并项目和工具 44
3.5.1 理解项目结构 44
3.5.2 理解工具集成 44
3.5.3 理解项目变更系统 45
3.5.3 检测TypeScript错误 48
3.6 本章小结 50
第4章 HTML和CSS入门 51
4.1 准备示例项目 51
4.2 理解HTML 53
4.2.1 理解空元素 54
4.2.2 理解属性 54
4.2.3 应用无值属性 54
4.2.4 在属性中引用字面量 55
4.2.5 理解元素内容 55
4.2.6 理解文档结构 55
4.3 理解Bootstrap 57
4.3.1 应用基本的Bootstrap类 57
4.3.2 使用Bootstrap样式化表格 61
4.3.3 使用Bootstrap创建表单 62
4.3.4 使用Bootstrap创建网格 63
4.4 本章小结 68
第5章 JavaScript与TypeScript:
第1部分 69
5.1 准备示例项目 70
5.1.1 创建HTML和JavaScript
文件 71
5.1.2 配置TypeScript编译器 72
5.1.3 运行示例项目 72
5.2 理解script元素 73
5.2.1 使用JavaScript模块
加载器 73
5.2.2 理解基本工作流 74
5.3 使用语句 75
5.4 定义和使用函数 75
5.4.1 定义带参数的函数 77
5.4.2 定义返回结果的函数 79
5.4.3 将函数用作其他函数的
实参 79
5.5 使用变量和类型 80
5.6 使用JavaScript操作符 84
5.6.1 使用条件语句 84
5.6.2 相等操作符和恒等操作符 85
5.6.3 显式类型转换 86
5.7 处理数组 87
5.7.1 使用数组字面量 88
5.7.2 数组内容的读取和修改 88
5.7.3 遍历数组内容 89
5.7.4 使用内置数组方法 89
5.8 本章小结 91
第6章 JavaScript与TypeScript:
第2部分 93
6.1 准备示例项目 93
6.2 使用对象 94
6.2.1 使用对象字面量 95
6.2.2 将函数用作方法 95
6.2.3 定义类 96
6.3 处理JavaScript模块 99
6.3.1 创建模块 99
6.3.2 从JavaScript模块导入 100
6.4 有用的TypeScript特性 103
6.4.1 使用类型注解 103
6.4.2 使用元组 109
6.4.3 使用可索引类型 109
6.4.4 使用访问修饰符 110
6.5 本章小结 111
第7章 SportsStore:一个真实的
应用程序 113
7.1 准备项目 113
7.1.1 准备项目 114
7.1.2 创建文件夹结构 114
7.1.3 安装额外的NPM软件包 114
7.1.4 准备RESTful Web服务 116
7.1.5 准备HTML文件 118
7.1.6 运行示例应用程序 119
7.1.7 启动RESTful Web服务 119
7.2 准备Angular项目功能 120
7.2.1 更新根组件 120
7.2.2 更新根模块 121
7.2.3 检查引导文件 121
7.3 启动数据模型 122
7.3.1 创建模型类 122
7.3.2 创建虚拟数据源 123
7.3.3 创建模型存储库 124
7.3.4 创建功能模块 126
7.4 启动商店 126
7.4.1 创建Store组件和模板 127
7.4.2 创建商店功能模块 128
7.4.3 更新根组件和根模块 129
7.5 添加商店功能:产品详情 130
7.5.1 显示产品详情 130
7.5.2 添加类别选择 132
7.5.3 添加产品分页功能 133
7.5.4 创建自定义指令 137
7.6 本章小结 140
第8章 SportsStore:订单和结账 141
8.1 准备示例应用程序 141
8.2 创建购物车 141
8.2.1 创建购物车模型 141
8.2.2 创建购物车概览组件 143
8.2.3 将购物车集成到商店中 145
8.3 添加URL路由 148
8.3.1 创建购物车详情和结账
组件 148
8.3.2 创建和应用路由配置 150
8.3.3 应用程序导航 151
8.3.4 守卫路由 154
8.4 完成购物车详情功能 156
8.5 处理订单 159
8.5.1 扩展模型 159
8.5.2 收集订单详情 161
8.6 使用RESTful Web服务 165
8.7 本章小结 168
第9章 SportsStore:管理 169
9.1 准备示例应用程序 169
9.1.1 创建模块 169
9.1.2 配置URL路由系统 172
9.1.3 导航到管理URL 173
9.2 实现身份验证 175
9.2.1 理解身份验证系统 175
9.2.2 扩展数据源 176
9.2.3 创建身份验证服务 177
9.2.4 启用身份验证 178
9.3 扩展数据源和存储库 181
9.4 创建管理功能结构 185
9.4.1 创建占位符组件 185
9.4.2 准备常用内容和功能
模块 186
9.4.3 实现产品功能 189
9.4.4 实现订单功能 193
9.5 本章小结 195
第10章 SportsStore:部署 197
10.1 准备部署应用程序 197
10.2 将SportsStore应用程序
容器化 197
10.2.1 安装Docker 197
10.2.2 准备应用程序 198
10.2.3 创建Docker容器 199
10.2.4 运行应用程序 200
10.3 本章小结 201
第11章 创建Angular项目 203
11.1 准备TypeScript Angular
开发项目 203
11.1.1 创建项目文件夹结构 204
11.1.2 创建和提供HTML
文档 204
11.1.3 准备项目配置 205
11.1.4 添加包 205
11.1.5 启动监视进程 213
11.2 使用TypeScript开始
Angular开发 214
11.2.1 创建数据模型 216
11.2.2 创建模板和根组件 219
11.2.3 创建Angular模块 220
11.2.4 引导应用程序 221
11.2.5 配置JavaScript模块
加载器 222
11.2.6 更新HTML文档 226
11.2.7 运行应用程序 227
11.3 利用@angularcli工具
创建项目 229
11.3.1 创建示例项目 229
11.3.2 创建包文件 230
11.3.3 启动服务器 231
11.4 本章小结 231
第12章 使用数据绑定 233
12.1 准备示例项目 234
12.2 理解单向数据绑定 234
12.2.1 理解绑定目标 236
12.2.2 理解表达式 237
12.2.3 理解括号 238
12.2.4 理解宿主元素 239
12.3 使用标准属性和属性绑定 239
12.3.1 使用标准属性绑定 239
12.3.2 使用字符串插入绑定 241
12.3.3 使用元素属性绑定 242
12.4 设置CSS类和样式 244
12.4.1 使用类绑定 244
12.4.2 使用样式绑定 248
12.5 更新应用程序的数据 252
12.6 本章小结 254
第13章 使用内置指令 255
13.1 准备示例项目 256
13.2 使用内置指令 257
13.2.1 使用ngIf指令 258
13.2.2 使用ngSwitch指令 260
13.2.3 使用ngFor指令 262
13.2.4 使用ngTemplateOutlet
指令 271
13.3 理解单向数据绑定的限制 273
13.3.1 使用幂等表达式 274
13.3.2 理解表达式上下文 276
13.4 本章小结 279
第14章 使用事件和表单 281
14.1 准备示例项目 282
14.1.1 添加表单模块 282
14.1.2 准备组件和模板 283
14.2 使用事件绑定 285
14.2.1 理解动态定义的属性 286
14.2.2 使用事件数据 288
14.2.3 使用模板引用变量 290
14.3 使用双向数据绑定 292
14.4 处理表单 295
14.4.1 向示例应用程序添加
表单 295
14.4.2 添加表单数据验证 297
14.4.3 验证整个表单 307
14.5 使用基于模型的表单 313
14.5.1 启用基于模型的表单
功能 313
14.5.2 定义表单模型类 314
14.5.3 使用模型进行验证 317
14.5.4 根据模型生成元素 321
14.6 创建自定义表单验证器 322
14.7 本章小结 325
第15章 创建属性指令 327
15.1 准备示例项目 328
15.2 创建简单的属性指令 330
15.3 在指令中访问应用程序
数据 333
15.3.1 读取宿主元素属性 333
15.3.2 创建数据绑定输入
属性 335
15.3.3 响应输入属性变化 338
15.4 创建自定义事件 340
15.5 创建宿主元素绑定 343
15.6 在宿主元素上创建双向
绑定 344
15.7 导出指令用于模板变量 348
15.8 本章小结 350
第16章 创建结构型指令 351
16.1 准备示例项目 352
16.2 创建简单的结构型指令 353
16.2.1 实现结构型指令类 354
16.2.2 启用结构型指令 356
16.2.3 使用结构型指令的
简洁语法 358
16.3 创建迭代结构型指令 359
16.3.1 提供额外的上下文
数据 362
16.3.2 使用简洁的结构语法 363
16.3.3 处理属性级数据变更 364
16.3.4 处理集合级数据变更 365
16.4 查询宿主元素内容 376
16.4.1 查询多个子内容 379
16.4.2 接收查询变更通知 381
16.5 本章小结 382
第17章 理解组件 385
17.1 准备示例项目 386
17.2 使用组件来组织应用程序 386
17.2.1 创建新组件 388
17.2.2 定义模板 391
17.2.3 完成组件的重组 400
17.3 使用组件样式 401
17.3.1 定义外部组件样式 402
17.3.2 使用高级样式特性 403
17.4 查询模板内容 410
17.5 本章小结 412
第18章 使用和创建管道 413
18.1 准备示例项目 414
18.2 理解管道 418
18.3 创建一个自定义管道 419
18.3.1 注册自定义管道 421
18.3.2 应用自定义管道 421
18.3.3 组合管道 423
18.3.4 创建非纯管道 423
18.4 使用内置管道 427
18.4.1 格式化数值 428
18.4.2 格式化货币值 431
18.4.3 格式化百分比 433
18.4.4 格式化日期 435
18.4.5 改变字符串大小写 438
18.4.6 将数据序列化为JSON
数据 439
18.4.7 将数据数组切片 440
18.5 小结 442
第19章 使用服务 443
19.1 准备示例项目 444
19.2 理解对象分发问题 445
19.2.1 问题的提出 445
19.2.2 利用依赖注入将对象
作为服务分发 450
19.2.3 在其他构造块中声明
依赖 455
19.3 理解测试隔离问题 461
19.4 完成服务的融入 465
19.4.1 更新根组件和模板 465
19.4.2 更新子组件 466
19.5 小结 468
第20章 使用服务提供程序 469
20.1 准备示例项目 470
20.2 使用服务提供程序 471
20.2.1 使用类提供程序 474
20.2.2 使用值提供程序 481
20.2.3 使用工厂提供程序 483
20.2.4 使用已有服务提供
程序 486
20.3 使用本地提供程序 487
20.3.1 理解单个服务对象的
限制 488
20.3.2 在一条指令中创建本地
提供程序 489
20.3.3 在组件中创建本地提供
程序 491
20.3.4 控制依赖解析 495
20.4 小结 498
第21章 使用和创建模块 499
21.1 准备示例项目 499
21.2 理解根模块 501
21.2.1 理解imports属性 504
21.2.2 理解declarations 属性 504
21.2.3 理解providers属性 504
21.2.4 理解bootstrap属性 504
21.3 创建功能模块 507
21.3.1 创建模型模块 508
21.3.2 创建实用工具功能
模块 512
21.3.3 用组件创建一个功能
模块 518
21.4 小结 521
第22章 创建示例项目 523
22.1 启动示例项目 523
22.2 添加和配置包 524
22.2.1 配置TypeScript 525
22.2.2 配置HTTP开发
服务器 525
22.3 创建模型模块 526
22.3.1 创建产品数据类型 526
22.3.2 创建数据源和存储库 526
22.3.3 完成模型模块 528
22.4 创建核心模块 528
22.4.1 创建共享状态服务 528
22.4.2 创建表格组件 529
22.4.3 创建表单组件 531
22.4.4 完成核心模块 533
22.5 创建消息模块 533
22.5.1 创建消息模型和服务 533
22.5.2 创建组件和模板 534
22.5.3 完成消息模块 535
22.6 完成项目 535
22.6.1 创建Angular引导程序 536
22.6.2 创建HTML文档 536
22.7 运行示例项目 537
22.8 小结 538
第23章 使用Reactive Extensions 539
23.1 准备示例项目 540
23.2 理解问题 540
23.3 使用Reactive Extensions
解决问题 543
23.3.1 理解Observable 544
23.3.2 理解Observer 545
23.3.3 理解Subject 547
23.4 使用async管道 548
23.5 扩展应用程序功能模块 551
23.6 基础之上更进一步 553
23.6.1 过滤事件 554
23.6.2 转换事件 555
23.6.3 只接收不同的事件 558
23.6.4 获取和忽略事件 560
23.7 小结 561
第24章 生成异步HTTP请求 563
24.1 准备示例项目 564
24.1.1 配置模型功能模块 565
24.1.2 更新表单组件 566
24.1.3 运行示例项目 567
24.2 理解RESTful Web服务 568
24.3 替换静态数据源 569
24.3.1 创建新的数据源服务 569
24.3.2 配置数据源 572
24.3.3 使用REST数据源 572
24.3.4 保存和删除数据 574
24.4 加强HTTP请求 576
24.5 生成跨域请求 578
24.6 配置请求头 581
24.7 处理错误 584
24.7.1 生成用户可以使用的
消息 585
24.7.2 处理错误 586
24.8 小结 588
第25章 路由和导航:第1部分 589
25.1 准备示例项目 590
25.2 开始学习路由 593
25.2.1 创建路由配置 594
25.2.2 创建路由组件 595
25.2.3 更新根模块 596
25.2.4 完成配置 596
25.2.5 添加导航链接 597
25.2.6 理解路由的效果 600
25.3 完成路由实现 602
25.3.1 在组件中处理路由
变化 602
25.3.2 使用路由参数 605
25.3.3 在代码中导航 611
25.3.4 接收导航事件 614
25.3.5 删除事件绑定和
支持代码 615
25.4 小结 618
第26章 路由与导航:第2部分 619
26.1 准备示例项目 619
26.2 使用通配符和重定向 626
26.2.1 在路由中使用通配符 626
26.2.2 在路由中使用重定向 628
26.3 在组件内部导航 630
26.3.1 响应正在发生的
路由变化 631
26.3.2 为活动路由设置不同
样式的链接 633
26.3.3 修复All按钮 636
26.4 创建子路由 637
26.4.1 创建子路由出口 638
26.4.2 从子路由访问参数 640
26.5 小结 644
第27章 路由与导航:第3部分 645
27.1 准备示例项目 645
27.2 守卫路由 647
27.2.1 使用解析器推迟导航 647
27.2.2 避免带有守卫的导航 654
27.3 动态加载功能模块 667
27.3.1 创建一个简单的功能
模块 667
27.3.2 动态加载模块 669
27.3.3 守卫动态模块 672
27.4 指定命名出口 675
27.4.1 创建附加的出口元素 676
27.4.2 在使用多个出口的
情况下导航 678
27.5 小结 680
第28章 使用动画 681
28.1 准备示例项目 682
28.1.1 添加动画polyfill 682
28.1.2 禁用HTTP延迟 685
28.1.3 简化表格模板和
路由配置 686
28.2 开始学习Angular动画 688
28.2.1 创建动画 688
28.2.2 应用动画 691
28.2.3 测试动画效果 694
28.3 理解内置的动画状态 696
28.4 理解元素过渡 697
28.4.1 为内置状态创建迁移 697
28.4.2 控制动画过渡 699
28.5 理解动画样式分组 704
28.5.1 在可重用分组中定义
公共样式 704
28.5.2 使用元素变形 705
28.5.3 应用CSS框架样式 707
28.6 理解动画触发器事件 709
28.7 小结 712
第29章 Angular单元测试 713
29.1 准备示例项目 714
29.1.1 添加测试包 715
29.1.2 创建一个简单的
单元测试 719
29.1.3 启动工具 719
29.2 使用Jasmine完成单元
测试 721
29.3 测试Angular组件 722
29.3.1 使用TestBed类完成
工作 722
29.3.2 测试数据绑定 726
29.3.3 测试带有外部模板的
组件 728
29.3.4 测试组件事件 730
29.3.5 测试输出属性 732
29.3.6 测试输入属性 734
29.3.7 测试异步操作 736
29.4 测试Angular指令 739
29.5 小结 740
|
內容試閱:
|
译 者 序
在欣欣向荣的Web 前端领域,新的框架层出不穷,如此多的选择给开发者带来极大的
痛苦:学习难度如何?开发效率如何?运行性能如何?可维护性高吗?还有开发社区、发
展前景等因素需要考虑。评估任何一个框架不仅要看其优势,还要看它给开发者挖的坑有
多深。Angular 框架自最初的AngularJS,迭代到最新的Angular 5,其不变的最显著特征就
是其整合性。作为一个一体化框架,Angular 经过精心的前期设计,涵盖了开发中的各个
层面,层与层之间都经过精心调适。开发者借助这个开箱即用的框架,就可以完成大
部分的前端开发工作,而不需要费时费力去组合、评估其他前端技术。这可以有效降低开
发者和开发团队的决策成本,有利于项目的快速起步。
Angular 5 是构建动态JavaScript 应用程序的领先框架,而想讲清楚这个包罗万象的一
站式框架的各项强大功能是一项很大的挑战。Adam Freeman 撰著的《Angular 5 高级编程第
2 版》详细描述如何在项目中使用Angular,从最基本的构造块开始,到最终构建最先进
和复杂的功能,深入讲解开发者所需要掌握的所有知识。本书讲解Angular 框架的面面俱
到,同时也不放过任何有用的细节,特别是对于一些最重要的Angular 功能,本书都给出
了常见问题以及解决办法。
即便是一位希望从事Web 前端开发工作的新手,考虑到Angular 框架陡峭的学习曲线,
也不要担心,本书由易到难的循序渐进式风格可以极大地降低学习Angular 框架的门槛,
降低学习痛苦指数。而对于经验丰富的前端老兵,尽管具有Angular 框架使用经验,本书
也值得推荐,因为本书内容已经升级到Angular 5,能助你快速将项目升级到Angular 框架
的最新版,充分利用最新框架的强大功能。
本书由杨明军、颜炯翻译。此外,参与本书翻译的还有肖国尊、胡季红、李辉、马蓉、
李新军、易民全、姚建军、鲍春雷、甘信生、郝雪松、凌栋、王发云、王继云、赵建军、
朱宝庆、朱钱。Be Flying 工作室负责人肖国尊负责本书翻译质量和进度的控制与管理。敬
请广大读者提供反馈意见,我们的邮箱是215565222@qq.com。我们会仔细查阅读者发来
的每一封邮件,尽快回应读者的问题。
|
|