目录前言 1第1章 Angular概述 9为什么要用Angular 10本书没有涉及的内容 10创建开发环境 11Nodejs 11TypeScript 12Angular CLI 12下载代码库 13小结 13第2章 你好!Angular 14创建你的**个Angular项目 14理解Angular CLI 15运行应用程序 16Angular应用程序的基本构成 18根HTML——indexhtml 19入口点——maints 19主模块——appmodulets 20根组件——AppComponent 21创建组件23创建组件的步骤 23使用新组件 25理解数据绑定 26理解属性绑定 29理解事件绑定 32使用模型让代码更清晰 37小结 39练习 39第3章 使用Angular内置指令 41指令和组件 41内置属性指令 42NgClass 42NgStyle 46另一种class绑定和style绑定语法 47内置结构化指令 48NgIf 50NgFor 51NgSwitch 56多分支的结构指令 57小结 57练习 58第4章 理解和使用Angular组件 59组件简介59定义组件60Selector 60Template 61Styles 62样式封装 64其他 65组件和模块 67输入和输出 68输入 68输出 70变化感知 73组件的生命周期 77接口和函数 78视图投影82小结 85练习 85第5章 测试Angular组件 87什么是单元测试? 87测试和Angular 88测试步骤89Karma 配置 89testts 90编写单元测试 91隔���单元测试 91运行测试 93编写Angular单元测试 95测试组件交互 98调试 101小结 102练习 102第6章 使用模板驱动表单 104模板驱动表单 104创建表单 104事件绑定和属性绑定——另一种ngModel 105ngModel 108一个完整的表单 110控件的状态 115控件的校验 118使用表单组FormGroups 125小结 127练习 127第7章 使用响应式表单 129响应式表单 129区别 130使用响应式表单 130表单控件 130表单组 134表单构建器 137表单数据138控件状态、有效性和错误 139表单和数据模型 141FormArray表单数组 145小结 150练习 151第8章 Angular服务 153什么是Angular服务? 153创建自己的Angular服务 154深入示例代码 154依赖注入 164Angular和依赖注入 165RxJS和Observables:使用异步操作 172小结 178练习 179第9章 Angular与HTTP请求 180HttpClient概述 180启动服务器 181使用HttpClientModule 181创建HTTP GET/POST请求 182**HTTP 188选项——Header和参数 188options参数——Observe和ResponseType 191拦截器 196Observable进阶 203小结 210练习 211第10章 对服务进行单元测试 213如何对服务进行单元测试 213测试有服务依赖的组件 217用真实服务测试组件217用模拟服务测试组件218用假服务测试组件 220异步单元测试 222HTTP的单元测试 226小结 231练习 231第11章 路由 233创建Angular路由 233启动服务器 233初始代码库 234导入路由模块 234显示路由内容 237App的导航 238通配符和默认值 240常见路由需求 242路由必要参数 242在App中导航 244路由可选参数 248路由保护252仅授权可用路由 252防止卸载 255用Resolver提前加载数据 258小结 260练习 260第12章 部署到生产 262编译生产版本 262生产构建 263AOT编译和Build优化器 264Base Href 265部署Angular App 265其他 266缓存 266API/服务器调用和CORS 268区分不同环境 269深度链接 269懒加载 271服务端渲染和SEO 277小结 287