内容简介
第1章 Angular 2介绍
1.1 JavaScript框架和库的示例
1.1.1重量级框架
1.1.2轻量级框架
1.1.3库
1.1.4什么是Node.js
1.2 AngularJS高级概述
1.3 Angular高级概述
1.3.1简化代码
1.3.2性能提升
1.4 Angular开发者工具
1.5如何使用Angular
1.6在线拍卖示例介绍
1.7本章 小结
第2章 Angular入门
2.1第一个Angular应用程序
2.1.1 TypeScript版本的Hello World
2.1.2 ES5版本的Hello World
2.1.3 ES6版本的Hello World
2.1.4启动应用程序
2.2 Angular应用程序的构建块
2.2.1模块
2.2.2组件
2.2.3指令
2.2.4数据绑定简介
2.3通用模块加载器SystemJS
2.3.1模块加载器概览
2.3.2模块加载器与〈script〉标签
2.3.3 SystemJS入门
2.4选择包管理器
2.4.1对比npm和jspm
2.4.2使用npm开始一个Angular项目
2.5动手实践:开始在线拍卖应用程序
2.5.1初始化项目设置
2.5.2开发首页
2.5.3启动在线拍卖应用程序
2.6本章 小结
第3章 使用Angular路由导航
3.1路由基础
3.1.1定位策略
3.1.2客户端导航的构建块
3.1.3使用navigate()导航到路由
3.2向路由传递数据
3.2.1从ActivatedRoute对象中提取参数
3.2.2传递静态数据给路由
3.3子路由
3.4守护路由
3.5开发一个具有多个路由插座的单页面应用
3.6将应用程序分解到模块中
3.7延迟加载模块
3.8实践:为在线拍卖应用程序添加导航
3.8.1创建ProductDetailComponent
3.8.2创建HomeComponent和代码重构
3.8.3简化ApplicationComponent
3.8.4将RouterLink添加到ProductItemComponent
3.8.5修改根模块,添加路由
3.8.6运行在线拍卖应用程序
3.9本章小结
第4章 依赖注入
4.1依赖注入模式和控制反转模式
4.1.1依赖注入模式
4.1.2控制反转模式
4.1.3依赖注入的好处
4.2注入器和provider
4.3使用Angular DI的示例应用程序
4.3.1注入产品服务
4.3.2注入Http服务
4.4轻松切换可注入(组件/对象)
4.4.1使用useFactory和useValue属性声明providers
4.4.2使用OpaqueToken
4.5注入器的层级结构
4.6实践:在在线拍卖应用程序中使用DI
4.6.1更改代码,将产品ID作为参数传递
4.6.2修改ProductDetailComponent
4.7本章小结
第5章 绑定、observable和管道
5.1数据绑定
5.1.1事件绑定
5.1.2属性绑定和特性绑定
5.1.3模板中的绑定
5.1.4双向数据绑定
5.2响应式编程和observable
5.2.1什么是observable和观察者
5.2.2 observable事件流
5.2.3取消observables
5.3管道
5.4实践:在线拍卖应用程序中产品的过滤功能
5.5本章小结
第6章 实现组件通信
6.1组件间通信
6.1.1输入和输出属性
6.1.2 Mediator模式
6.1.3使用ngContent在运行时修改模板
6.2组件生命周期
6.3变更检测高级概述
6.4如何暴露子组件中的API
6.5实践:为在线拍卖应用程序添加评分功能
6.6本章小结
第7章 使用表单
7.1 HTML表单概述
7.1.1标准浏览器功能
7.1.2 Angular Forms API
7.2模板驱动表单
7.2.1指令概述
7.2.2丰富HTML表单
7.3响应式表单
7.3.1表单模型
7.3.2表单指令
7.3.3重构示例表单
7.3.4使用FormBuilder
7.4表单验证
7.5动手实践:给搜索表单添加验证
7.5.1修改根模块以添加Forms API支持
7.5.2将一个类别列表添加到SearchComponent
7.5.3创建表单模型
7.5.4重构模板
7.5.5实现onSearch()方法
7.5.6启动在线拍卖应用程序
7.6本章小结
第8章 使用HTTP和WebSocket与服务器交互
8.1简述Http对象的API
8.2使用Node和TypeScript创建Web服务器
8.2.1创建一台简单的Web服务器
8.2.2提供JSON
8.2.3 TypeScript实时重新编译与代码重新加载
8.2.4添加提供产品的RESTful API
8.3将Angular与Node结合在一起
8.3.1服务器上的静态资源
8.3.2使用Http对象进行GET请求
8.3.3在模板中使用AsyncPipe展开observables
8.3.4将HTTP注入到服务中
8.4通过WebSocket进行客户端-服务器通信
8.4.1从Node服务器推送数据
8.4.2将WebSocket转换成observable
8.5动手实践:实现产品搜索和出价通知
8.5.1使用HTTP实现产品搜索
8.5.2使用WebSocket广播拍卖出价
8.6本章小结
第9章 Angular应用程序单元测试
9.1了解Jasmine
9.1.1测试什么
9.1.2如何安装Jasmine
9.2 Angular测试库都包括了什么
9.2.1测试服务
9.2.2使用路由测试导航
9.2.3测试组件
9.3测试天气示例应用程序
9.3.1配置SystemJS
9.3.2测试天气路由
9.3.3测试天气服务
9.3.4天气测试组件
9.4使用Karma运行测试
9.5实践:在线拍卖应用程序单元测试
9.5.1测试ApplicationComponent
9.5.2测试ProductService
9.5.3测试StarsComponent
9.5.4运行测试
9.6本章小结
第10章 使用Webpack打包并部署应用程序
10.1了解Webpack
10.1.1使用Webpack的Hello World
10.1.2如何使用加载器
10.1.3如何使用插件
10.2为Angular创建基本的Webpack配置
10.2.1 npm run build
10.2.2 npm start
10.3创建开发和生产配置
10.3.1开发(环境)配置
10.3.2生产(环境)配置
10.3.3自定义的类型定义文件
10.4 Angular CLI概述
10.4.1用Angular CLI启动新项目
10.4.2 CLI命令
10.5动手实践:使用Webpack部署在线拍卖应用程序
10.5.1启动Node服务器
10.5.2启动在线拍卖应用程序的客户端
10.5.3使用Karma运行测试
10.6本章 小结
附录A ECMAScript 6概述
附录B 作为Angular应用程序语言的TypeScript