小苏子
小苏子PDF在线图书

AngularJS权威教程 ng-book 2 内容简介

AngularJS权威教程 ng-book 2 内容简介

AngularJS权威教程 ng-book 2 目录

本书堪称Angular领域的里程碑式著作,涵盖了关于Angular的几乎所有内容。对于没有经验的人,本书平实、通俗的讲解,递进、严密的组织,可以让人毫无压力地登堂入室,迅速领悟新一代Web应用开发的精髓。如果你有相关经验,那本书对Angular概念和技术细节的全面剖析,以及引人入胜、切中肯綮的讲解,将帮助你彻底掌握这个框架,在自己职业技术修炼之路上更进一步。第1章 编写你的第一个Angular Web应用 11.1 仿制Reddit网站 11.2 起步 31.2.1 Type Script 31.2.2 angular—cli 31.2.3 示例项目 41.3 运行应用 71.3.1 制作Component 81.3.2 导入依赖 91.3.3 Component注解 101.3.4 用templateUrl添加模板 111.3.5 添加template 111.3.6 用styleUrls添加CSS样式 121.3.7 加载组件 121.4 把数据添加到组件中 131.5 使用数组 151.6 使用UserItemComponent组件 181.6.1 渲染UserItemComponent 181.6.2 接收输入 191.6.3 传入Input值 201.7 “启动”速成班 211.8 扩展你的应用 221.8.1 添加CSS 241.8.2 应用程序组件 241.8.3 添加互动 261.8.4 添加文章组件 291.9 渲染多行 361.9.1 创建Article类 361.9.2 存储多篇文章 401.9.3 使用inputs配置ArticleComponent 411.9.4 渲染文章列表 421.10 添加新文章 441.11 最后的修整 441.11.1 显示文章所属的域名 441.11.2 基于分数重新排序 451.12 全部代码 451.13 总结 451.14 获得帮助 46第2章 TypeScript 472.1 Angular是用TypeScript构建的 472.2 TypeScript提供了哪些特性 482.3 类型 492.4 内置类型 502.4.1 字符串 502.4.2 数字 502.4.3 布尔类型 512.4.4 数组 512.4.5 枚举 512.4.6 任意类型 522.4.7 “无”类型 522.5 类 522.5.1 属性 522.5.2 方法 532.5.3 构造函数 542.5.4 继承 552.6 工具 572.6.1 胖箭头函数 572.6.2 模板字符串 582.7 总结 59第3章 Angular的工作原理 603.1 应用 603.1.1 主导航组件 613.1.2 面包屑导航组件 613.1.3 产品列表组件 623.2 产品数据模型 643.3 组件 643.4 组件注解 663.4.1 组件selector 663.4.2 组件template 673.4.3 添加产品 673.4.4 用模板绑定来查看产品 683.4.5 添加更多产品 693.4.6 选择一个产品 703.4.7 用<;products—list>;列出产品 733.5.1 设置ProductsList的@Component配置项 733.5.2 组件的输入 743.5.3 组件的输出 773.5.4 触发自定义事件 783.5.5 编写ProductsList的控制器类 793.5.6 编写ProdctsList的视图模板 813.6 产品条目组件 833.6.1 产品条目的组件配置 833.6.2 产品条目组件的定义类 843.6.3 产品条目组件的template 843.6.4 完整的ProductRow代码清单 853.8 价格展示组件 863.9 产品分类组件 873.10 创建NgModule并启动应用 883.11 完整的项目 893.12 关于数据架构的一点说明 90第4章 内置指令 914.1 简介 914.2 ngIf 914.3 ngSwitch 924.4 ngStyle 934.5 ngClass 954.6 ngFor 984.7 ngNonBindable 1024.8 总结 102第5章 Angular中的表单 1035.1 表单——既重要,又复杂 1035.2 FormControl和FormGroup 1035.2.1 FormControl 1045.2.2 FormGroup 1045.3 我们的第一个表单 1055.3.1 加载FormsModule 1065.3.2 简易SKU表单:@Component注解 1075.3.3 简易SKU表单:template 1075.3.4 简易SKU表单:组件定义类 1105.4 使用FormBuilder 1115.5 响应式表单FormBuilder 1125.5.1 使用FormBuilder 1125.5.2 在视图中使用myForm 1135.5.3 试试看 1145.6 添加验证 1155.6.1 显式地把sku设置为实例变量 1165.6.2 自定义验证器 1205.7 监听变化 1215.8 ngModel 1225.9 总结 124第6章 HTTP 1256.1 简介 1256.2 使用@angular/http 1266.3 基本请求 1276.3.1 构建SimpleHTTPComponent的@Component 1276.3.2 构建SimpleHTTPComponent的template 1286.3.3 构建SimpleHTTPComponent控制器 1286.3.4 完整的SimpleHTTPComponent 1306.4 编写YouTubeSearchComponent 1306.4.1 编写SearchResult 1326.4.2 编写YouTubeService 1326.4.3 编写SearchBox 1406.4.4 编写SearchResultComponent 1456.4.5 编写YouTubeSearchComponent 1476.5 @angular/httpAPI 1506.5.1 发起一个POST请求 1506.5.2 PUT/PATCH/DELETE/HEAD 1506.5.3 RequestOptions 1516.6 总结 151第7章 路由 1527.1 为什么需要路由 1527.2 客户端路由的工作原理 1537.2.1 初级阶段:使用锚标记 1537.2.2 进化:HTML5客户端路由 1547.3 编写第一个路由配置 1557.4 Angular路由的组成部件 1557.4.1 导入 1557.4.2 路由配置 1557.4.3 安装路由配置 1567.4.4 使用<;router—outlet>;调用RouterOutlet指令 1577.4.5 使用(routerLink)调用routerLink指令 1587.5 整合 1597.5.1 创建组件 1607.5.2 应用程序组件 1617.5.3 配置路由 1637.6 路由策略 1647.7 路径定位策略 1657.8 运行应用程序 1657.9 路由参数 1677.10 音乐搜索应用 1687.10.1 首要步骤 1697.10.2 SpotifyService 1707.10.3 SearchComponent 1717.10.4 尝试搜索 1797.10.5 TrackComponent 1807.10.6 音乐搜索应用小结 1827.11 路由器钩子 1827.11.1 AuthService 1837.11.2 LoginComponent 1847.11.3 ProtectedComponent组件和路由守卫 1867.12 嵌套路由 1907.12.1 配置路由 1917.12.2 ProductsComponent组件 1917.13 总结 194第8章 依赖注入 1958.1 注入示例:PriceService 1968.2 “别打给我们……” 1978.3 依赖注入的部件 1998.4 尝试注入器 2008.5 用NgModule提供依赖 2018.6 提供者 2028.6.1 使用类 2028.6.2 使用工厂 2038.6.3 使用值 2058.6.4 使用别名 2058.7 应用中的依赖注入 2058.8 使用注入器 2078.9 替换值 2118.10 NgModule 2158.10.1 NgModule与JavaScript模块 2158.10.2 编译器与组件 2158.10.3 依赖注入与提供者 2168.10.4 组件可见性 2178.10.5 指定提供者 2188.11 总结 219第9章 Angular数据架构 220第10章 使用可观察对象的数据架构,第1部分:服务 22210.1 可观察对象和RxJS 22210.1.1 注意:一些必备的RxJS相关知识 22210.1.2 学习响应式编程和RxJS 22310.2 聊天应用概览 22410.2.1 组件 22510.2.2 数据模型 22610.2.3 服务 22610.2.4 总结 22610.3 实现数据模型 22710.3.1 User 22710.3.2 Thread 22710.3.3 Message 22810.4 实现UserService 22810.4.1 currentUser流 22910.4.2 设置新用户 23010.4.3 UserService.ts 23110.5 MessagesService 23110.5.1 newMessages流 23110.5.2 messages流 23310.5.3 操作流模式 23310.5.4 共享流 23410.5.5 把Message对象添加到messages流中 23510.5.6 完整的MessagesService 23810.5.7 试用MessagesService 24110.6 ThreadsService 24210.6.1 当前一组Thread的映射(threads流) 24210.6.2 按时间逆序排列的Thread列表(orderedthreads流) 24610.6.3 当前已选的Thread(currentThread流) 24610.6.4 当前已选Thread的Message列表(currentThreadMessages流) 24810.6.5 完整的ThreadsService 25010.7 总结 251第11章 使用可观察对象的数据架构,第2部分:视图组件 25211.1 构建视图:顶层组件ChatApp 25211.2 ChatThreads组件 25411.2.1 ChatThreads控制器 25511.2.2 ChatThreads的template 25611.3.1 ChatThread控制器和ngOnInit 25711.3.2 ChatThread的template 25811.3.3 ChatThread的完整代码 25811.4 ChatWindow组件 25911.4.1 ChatWindow组件类属性 26011.4.2 ChatWindow的ngOnInit 26111.4.3 ChatWindow的sendMessage 26111.4.4 ChatWindow的onEnter 26211.4.5 ChatWindow的scrollToBottom 26211.4.6 ChatWindow的template 26311.4.7 处理键盘动作 26411.4.8 使用ngModel 26411.4.9 点击Send按钮 26511.4.10 完整的ChatWindow组件 26711.5.1 设置incoming属性 26811.5.2 ChatMessage的template 27011.6 ChatNavBar组件 27311.6.1 ChatNavBar的@Component 27311.6.3 ChatNavBar的template 27411.6.4 完整的ChatNavBar组件 27511.7 总结 27611.8 更进一步 277第12章 基于TypeScript的Redux简介 27812.1 Redux 27912.2 Redux核心概念 28012.2.1 reducer是什么 28012.2.2 定义Action和Reducer的接口 28112.2.3 创建第一个Reducer 28112.2.4 运行第一个Reducer 28212.2.5 使用action调整计数器 28312.2.6 reducer的switch 28412.2.7 action的“参数” 28512.3 保存state 28612.3.1 使用store 28712.3.2 使用subscribe进行通知 28712.3.3 Redux核心 29012.4 消息应用 29112.4.1 消息应用的state 29112.4.2 消息应用的action 29212.4.3 消息应用的reducer 29212.4.4 试用action 29512.4.5 actioncreator 29612.4.6 使用真正的Redux 29712.5 在Angular中使用Redux 29912.6 规划应用 29912.7 组建Redux 30012.7.1 定义应用的state 30012.7.2 定义reducer 30112.7.3 定义actioncreator 30112.7.4 创建store 30212.8 CounterApp组件 30312.9 提供store 30412.10 启动应用 30512.11 CounterComponent 30612.11.1 import 30612.11.2 模板 30612.11.3 constructor 30712.11.4 整合 30812.12 更进一步 31012.13 参考资源 310第13章 在Angular中引入Redux 31213.1 阅读背景 31213.2 聊天应用概览 31313.2.1 组件 31313.2.2 数据模型 31413.2.3 reducer 31513.2.4 总结 31513.3 实现数据模型 31513.3.1 User 31513.3.2 Thread 31613.3.3 Message 31613.4 应用的state 31613.4.1 关于代码布局 31713.4.2 根reducer 31713.4.3 UserState 31813.4.4 ThreadsState 31813.4.5 可视化AppState 31913.5 构建reducer(和actioncreator) 32113.5.1 设置当前用户的actioncreator 32113.5.2 UsersReducer:设置当前用户 32113.5.3 会话和消息概览 32213.5.4 添加新会话的actioncreator 32213.5.5 添加新会话的reducer 32313.5.6 添加新消息的actioncreator 32413.5.7 添加新消息的reducer 32513.5.8 选择会话的actioncreator 32613.5.9 选择会话的reducer 32713.5.10 reducer总结 32813.6 构建Angular聊天应用 32813.6.1 顶层组件ChatApp 33013.6.2 ChatPage 33013.6.3 容器型组件与展示型组件 33213.7.1 Redux选择器 33413.7.2 会话选择器 33413.7.3 未读消息总数选择器 33613.8 构建ChatThreads组件 33613.8.1 ChatThreads控制器 33713.8.2 ChatThreads的template 33813.10 构建ChatWindow组件 34013.10.1 ChatWindow的updateState() 34113.10.2 ChatWindow的scrollToBottom() 34213.10.3 ChatWindow的sendMessage 34213.10.4 ChatWindow的onEnter 34313.10.6 处理键盘动作 34513.10.7 使用ngModel 34513.10.8 点击Send按钮 34513.11 ChatMessage组件 34513.11.1 设置incoming属性 34613.11.2 ChatMessage的template 34613.12 总结 347第14章 高级组件 34914.1 样式 34914.1.1 视图(样式)封装 35114.1.2 ShadowDOM封装 35414.1.3 不使用封装 35514.2 创建popup指令:引用并修改宿主元素 35714.2.1 popup指令的结构 35714.2.2 使用ElementRef 35914.2.3 绑定到host属性 36014.2.4 添加按钮并使用exportAs 36314.3.1 改变host属性的CSS类 36414.3.2 使用ng—content 36414.4 查询相邻的指令:编写标签页 36614.4.1 Tab组件 36714.4.2 Tabset组件 36714.4.3 使用Tabset 36914.5 生命周期钩子 37014.5.1 OnInit和OnDestroy 37114.5.2 OnChanges 37414.5.3 DoCheck 37814.5.4 AfterContentInit、AfterViewInit、AfterContentChecked和AfterViewChecked 38614.6 高级模板 39114.6.1 重写ngIf:ngBookIf 39214.6.2 重写ngFor:ngBookRepeat 39414.7 变更检测 39814.7.1 自定义变更检测 40114.7.2 Zones 40514.7.3 可观察对象和OnPush 40614.8 总结 409第15章 测试 41015.1 测试驱动? 41015.2 端对端测试与单元测试 41115.3 测试工具 41115.3.1 Jasmine 41115.3.2 Karma 41215.4 编写单元测试 41215.5 Angular单元测试框架 41215.6 测试前准备 41315.7 测试服务类和HTTP 41515.7.1 HTTP要点 41615.7.2 伪装 41715.7.3 模拟 41715.7.4 HttpMockBackend 41815.7.5 TestBed.configureTestingModule和提供者 41815.7.6 测试getTrack方法 41915.8 测试组件间的路由 42415.8.1 为测试创建路由器 42415.8.2 模拟依赖 42715.8.3 探子 42715.9 回到测试代码 42915.9.1 fakeAsync和advance 43115.9.2 inject 43215.9.3 测试ArtistComponent组件初始化 43215.9.4 测试ArtistComponent方法 43315.9.5 测试ArtistComponentDOM模板值 43415.10 测试表单 43615.10.1 创建一个ConsoleSpy 43815.10.2 安装ConsoleSpy 43915.10.3 配置测试模块 43915.10.4 测试表单 44015.10.5 重构表单测试 44115.11 测试HTTP请求 44415.11.1 测试POST方法 44515.11.2 测试DELETE方法 44615.11.3 测试HTTP头 44715.11.4 测试YouTubeService 44815.12 总结 452第16章 把AngularJS应用升级到Angular 45316.1 周边概念 45316.2 我们要构建什么 45416.3 把AngularJS映射到Angular 45516.4 关于互操作性的需求 45616.5 AngularJS应用 45616.5.1 AngularJS应用的HTML 45816.5.2 代码概览 45816.5.3 AngularJS:PinsService 45916.5.4 AngularJS:配置路由 46016.5.5 AngularJS:HomeController 46116.5.6 AngularJS:HomeController模板 46116.5.7 AngularJS:pin指令 46216.5.8 AngularJS:pin指令模板 46316.5.10 AngularJS:AddController模板 46516.5.11 AngularJS:总结 46716.6 构建混合式应用 46816.6.1 混合式应用的结构 46816.6.2 引导混合式应用 47116.6.3 我们要升级什么 47316.6.4 插一小段内容:类型文件 47916.6.6 使用Angular的PinControlsComponent 48116.6.7 把Angular的PinControlsComponent降级到AngularJS 48216.6.8 用Angular添加图钉 48316.6.9 把AngularJS的PinsService和$state升级到Angular 48416.6.10 写Angular版的AddPinComponent 48516.6.11 使用AddPinComponent 49016.6.12 把Angular的服务暴露给AngularJS 49016.6.13 实现AnalyticsService 49116.6.14 把Angular的AnalyticsService降级到AngularJS 49216.7 总结 49316.8 参考资源 493

赞(0)
未经允许不得转载:小苏子图书 » AngularJS权威教程 ng-book 2 内容简介