展开全部

主编推荐语

通俗易懂,带你轻松领悟新一代Web开发精髓。

内容简介

本书堪称AngularJS 2领域的里程碑式著作,涵盖了关于AngularJS 2的几乎所有内容。对于没有经验的人,本书平实、通俗的讲解,递进、严密的组织,可以让人毫无压力地登堂入室,迅速领悟新一代Web应用开发的精髓。如果你有相关经验,那本书对AngularJS 2概念和技术细节的全面剖析,以及引人入胜、切中肯綮的讲解,将帮助你彻底掌握这个框架,在自己职业技术修炼之路上更进一步。

目录

  • 版权信息
  • 推荐序
  • 译者序
  • 第1章 编写你的第一个Angular Web应用
  • 1.1 仿制Reddit网站
  • 1.2 起步
  • 1.2.1 TypeScript
  • 1.2.2 angular-cli
  • 1.2.3 示例项目
  • 1.3 运行应用
  • 1.3.1 制作Component
  • 1.3.2 导入依赖
  • 1.3.3 Component注解
  • 1.3.4 用templateUrl添加模板
  • 1.3.5 添加template
  • 1.3.6 用styleUrls添加CSS样式
  • 1.3.7 加载组件
  • 1.4 把数据添加到组件中
  • 1.5 使用数组
  • 1.6 使用UserItemComponent组件
  • 1.6.1 渲染UserItemComponent
  • 1.6.2 接收输入
  • 1.6.3 传入Input值
  • 1.7 “启动”速成班
  • 1.8 扩展你的应用
  • 1.8.1 添加CSS
  • 1.8.2 应用程序组件
  • 1.8.3 添加互动
  • 1.8.4 添加文章组件
  • 1.9 渲染多行
  • 1.9.1 创建Article类
  • 1.9.2 存储多篇文章
  • 1.9.3 使用inputs配置ArticleComponent
  • 1.9.4 渲染文章列表
  • 1.10 添加新文章
  • 1.11 最后的修整
  • 1.11.1 显示文章所属的域名
  • 1.11.2 基于分数重新排序
  • 1.12 全部代码
  • 1.13 总结
  • 1.14 获得帮助
  • 第2章 TypeScript
  • 2.1 Angular是用TypeScript构建的
  • 2.2 TypeScript提供了哪些特性
  • 2.3 类型
  • 2.4 内置类型
  • 2.4.1 字符串
  • 2.4.2 数字
  • 2.4.3 布尔类型
  • 2.4.4 数组
  • 2.4.5 枚举
  • 2.4.6 任意类型
  • 2.4.7 “无”类型
  • 2.5 类
  • 2.5.1 属性
  • 2.5.2 方法
  • 2.5.3 构造函数
  • 2.5.4 继承
  • 2.6 工具
  • 2.6.1 胖箭头函数
  • 2.6.2 模板字符串
  • 2.7 总结
  • 第3章 Angular的工作原理
  • 3.1 应用
  • 3.1.1 主导航组件
  • 3.1.2 面包屑导航组件
  • 3.1.3 产品列表组件
  • 3.2 产品数据模型
  • 3.3 组件
  • 3.4 组件注解
  • 3.4.1 组件selector
  • 3.4.2 组件template
  • 3.4.3 添加产品
  • 3.4.4 用模板绑定来查看产品
  • 3.4.5 添加更多产品
  • 3.4.6 选择一个产品
  • 3.4.7 用<products-list>列出产品
  • 3.5 产品列表组件
  • 3.5.1 设置ProductsList的@Component配置项
  • 3.5.2 组件的输入
  • 3.5.3 组件的输出
  • 3.5.4 触发自定义事件
  • 3.5.5 编写ProductsList的控制器类
  • 3.5.6 编写ProdctsList的视图模板
  • 3.5.7 完整的ProductsList组件
  • 3.6 产品条目组件
  • 3.6.1 产品条目的组件配置
  • 3.6.2 产品条目组件的定义类
  • 3.6.3 产品条目组件的template
  • 3.6.4 完整的ProductRow代码清单
  • 3.7 产品图片组件
  • 3.8 价格展示组件
  • 3.9 产品分类组件
  • 3.10 创建NgModule并启动应用
  • 3.11 完整的项目
  • 3.12 关于数据架构的一点说明
  • 第4章 内置指令
  • 4.1 简介
  • 4.2 ngIf
  • 4.3 ngSwitch
  • 4.4 ngStyle
  • 4.5 ngClass
  • 4.6 ngFor
  • 4.7 ngNonBindable
  • 4.8 总结
  • 第5章 Angular中的表单
  • 5.1 表单——既重要,又复杂
  • 5.2 FormControl和FormGroup
  • 5.2.1 FormControl
  • 5.2.2 FormGroup
  • 5.3 我们的第一个表单
  • 5.3.1 加载FormsModule
  • 5.3.2 简易SKU表单:@Component注解
  • 5.3.3 简易SKU表单:template
  • 5.3.4 简易SKU表单:组件定义类
  • 5.3.5 试试看
  • 5.4 使用FormBuilder
  • 5.5 响应式表单FormBuilder
  • 5.5.1 使用FormBuilder
  • 5.5.2 在视图中使用myForm
  • 5.5.3 试试看
  • 5.6 添加验证
  • 5.6.1 显式地把sku设置为实例变量
  • 5.6.2 自定义验证器
  • 5.7 监听变化
  • 5.8 ngModel
  • 5.9 总结
  • 第6章 HTTP
  • 6.1 简介
  • 6.2 使用 @angular/http
  • 6.3 基本请求
  • 6.3.1 构建SimpleHTTPComponent的@Component
  • 6.3.2 构建SimpleHTTPComponent的template
  • 6.3.3 构建SimpleHTTPComponent控制器
  • 6.3.4 完整的SimpleHTTPComponent
  • 6.4 编写YouTubeSearchComponent
  • 6.4.1 编写SearchResult
  • 6.4.2 编写YouTubeService
  • 6.4.3 编写SearchBox
  • 6.4.4 编写SearchResultComponent
  • 6.4.5 编写YouTubeSearchComponent
  • 6.5 @angular/http API
  • 6.5.1 发起一个POST请求
  • 6.5.2 PUT/PATCH/DELETE/HEAD
  • 6.5.3 RequestOptions
  • 6.6 总结
  • 第7章 路由
  • 7.1 为什么需要路由
  • 7.2 客户端路由的工作原理
  • 7.2.1 初级阶段:使用锚标记
  • 7.2.2 进化:HTML5客户端路由
  • 7.3 编写第一个路由配置
  • 7.4 Angular路由的组成部件
  • 7.4.1 导入
  • 7.4.2 路由配置
  • 7.4.3 安装路由配置
  • 7.4.4 使用<router-outlet>调用RouterOutlet指令
  • 7.4.5 使用[routerLink]调用routerLink指令
  • 7.5 整合
  • 7.5.1 创建组件
  • 7.5.2 应用程序组件
  • 7.5.3 配置路由
  • 7.6 路由策略
  • 7.7 路径定位策略
  • 7.8 运行应用程序
  • 7.9 路由参数
  • 7.10 音乐搜索应用
  • 7.10.1 首要步骤
  • 7.10.2 SpotifyService
  • 7.10.3 SearchComponent
  • 7.10.4 尝试搜索
  • 7.10.5 TrackComponent
  • 7.10.6 音乐搜索应用小结
  • 7.11 路由器钩子
  • 7.11.1 AuthService
  • 7.11.2 LoginComponent
  • 7.11.3 ProtectedComponent组件和路由守卫
  • 7.12 嵌套路由
  • 7.12.1 配置路由
  • 7.12.2 ProductsComponent组件
  • 7.13 总结
  • 第8章 依赖注入
  • 8.1 注入示例:PriceService
  • 8.2 “别打给我们……”
  • 8.3 依赖注入的部件
  • 8.4 尝试注入器
  • 8.5 用NgModule提供依赖
  • 8.6 提供者
  • 8.6.1 使用类
  • 8.6.2 使用工厂
  • 8.6.3 使用值
  • 8.6.4 使用别名
  • 8.7 应用中的依赖注入
  • 8.8 使用注入器
  • 8.9 替换值
  • 8.10 NgModule
  • 8.10.1 NgModule与JavaScript模块
  • 8.10.2 编译器与组件
  • 8.10.3 依赖注入与提供者
  • 8.10.4 组件可见性
  • 8.10.5 指定提供者
  • 8.11 总结
  • 第9章 Angular数据架构
  • 第10章 使用可观察对象的数据架构,第1部分:服务
  • 10.1 可观察对象和RxJS
  • 10.1.1 注意:一些必备的RxJS相关知识
  • 10.1.2 学习响应式编程和RxJS
  • 10.2 聊天应用概览
  • 10.2.1 组件
  • 10.2.2 数据模型
  • 10.2.3 服务
  • 10.2.4 总结
  • 10.3 实现数据模型
  • 10.3.1 User
  • 10.3.2 Thread
  • 10.3.3 Message
  • 10.4 实现UserService
  • 10.4.1 currentUser流
  • 10.4.2 设置新用户
  • 10.4.3 UserService.ts
  • 10.5 MessagesService
  • 10.5.1 newMessages流
  • 10.5.2 messages流
  • 10.5.3 操作流模式
  • 10.5.4 共享流
  • 10.5.5 把Message对象添加到messages流中
  • 10.5.6 完整的MessagesService
  • 10.5.7 试用MessagesService
  • 10.6 ThreadsService
  • 10.6.1 当前一组Thread的映射(threads流)
  • 10.6.2 按时间逆序排列的Thread列表(orderedthreads流)
  • 10.6.3 当前已选的Thread(currentThread流)
  • 10.6.4 当前已选Thread的Message列表(currentThreadMessages流)
  • 10.6.5 完整的ThreadsService
  • 10.7 总结
  • 第11章 使用可观察对象的数据架构,第2部分:视图组件
  • 11.1 构建视图:顶层组件ChatApp
  • 11.2 ChatThreads组件
  • 11.2.1 ChatThreads控制器
  • 11.2.2 ChatThreads的template
  • 11.3 单个ChatThread组件
  • 11.3.1 ChatThread控制器和ngOnInit
  • 11.3.2 ChatThread的template
  • 11.3.3 ChatThread的完整代码
  • 11.4 ChatWindow组件
  • 11.4.1 ChatWindow组件类属性
  • 11.4.2 ChatWindow的ngOnInit
  • 11.4.3 ChatWindow的sendMessage
  • 11.4.4 ChatWindow的onEnter
  • 11.4.5 ChatWindow的scrollToBottom
  • 11.4.6 ChatWindow的template
  • 11.4.7 处理键盘动作
  • 11.4.8 使用ngModel
  • 11.4.9 点击Send按钮
  • 11.4.10 完整的ChatWindow组件
  • 11.5 ChatMessage组件
  • 11.5.1 设置incoming属性
  • 11.5.2 ChatMessage的template
  • 11.5.3 完整的ChatMessage代码清单
  • 11.6 ChatNavBar组件
  • 11.6.1 ChatNavBar的@Component
  • 11.6.2 ChatNavBar控制器
  • 11.6.3 ChatNavBar的template
  • 11.6.4 完整的ChatNavBar组件
  • 11.7 总结
  • 11.8 更进一步
  • 第12章 基于TypeScript的Redux简介
  • 12.1 Redux
  • 12.2 Redux核心概念
  • 12.2.1 reducer是什么
  • 12.2.2 定义Action和Reducer的接口
  • 12.2.3 创建第一个Reducer
  • 12.2.4 运行第一个Reducer
  • 12.2.5 使用action调整计数器
  • 12.2.6 reducer的switch
  • 12.2.7 action的“参数”
  • 12.3 保存state
  • 12.3.1 使用store
  • 12.3.2 使用subscribe进行通知
  • 12.3.3 Redux核心
  • 12.4 消息应用
  • 12.4.1 消息应用的state
  • 12.4.2 消息应用的action
  • 12.4.3 消息应用的reducer
  • 12.4.4 试用action
  • 12.4.5 action creator
  • 12.4.6 使用真正的Redux
  • 12.5 在Angular中使用Redux
  • 12.6 规划应用
  • 12.7 组建Redux
  • 12.7.1 定义应用的state
  • 12.7.2 定义reducer
  • 12.7.3 定义action creator
  • 12.7.4 创建store
  • 12.8 CounterApp组件
  • 12.9 提供store
  • 12.10 启动应用
  • 12.11 CounterComponent
  • 12.11.1 import
  • 12.11.2 模板
  • 12.11.3 constructor
  • 12.11.4 整合
  • 12.12 更进一步
  • 12.13 参考资源
  • 第13章 在Angular中引入Redux
  • 13.1 阅读背景
  • 13.2 聊天应用概览
  • 13.2.1 组件
  • 13.2.2 数据模型
  • 13.2.3 reducer
  • 13.2.4 总结
  • 13.3 实现数据模型
  • 13.3.1 User
  • 13.3.2 Thread
  • 13.3.3 Message
  • 13.4 应用的state
  • 13.4.1 关于代码布局
  • 13.4.2 根reducer
  • 13.4.3 UserState
  • 13.4.4 ThreadsState
  • 13.4.5 可视化AppState
  • 13.5 构建reducer(和action creator)
  • 13.5.1 设置当前用户的action creator
  • 13.5.2 UsersReducer:设置当前用户
  • 13.5.3 会话和消息概览
  • 13.5.4 添加新会话的action creator
  • 13.5.5 添加新会话的reducer
  • 13.5.6 添加新消息的action creator
  • 13.5.7 添加新消息的reducer
  • 13.5.8 选择会话的action creator
  • 13.5.9 选择会话的reducer
  • 13.5.10 reducer总结
  • 13.6 构建Angular聊天应用
  • 13.6.1 顶层组件ChatApp
  • 13.6.2 ChatPage
  • 13.6.3 容器型组件与展示型组件
  • 13.7 构建ChatNavBar
  • 13.7.1 Redux选择器
  • 13.7.2 会话选择器
  • 13.7.3 未读消息总数选择器
  • 13.8 构建ChatThreads组件
  • 13.8.1 ChatThreads控制器
  • 13.8.2 ChatThreads的template
  • 13.9 单个ChatThread组件
  • 13.10 构建ChatWindow组件
  • 13.10.1 ChatWindow的updateState()
  • 13.10.2 ChatWindow的scrollToBottom()
  • 13.10.3 ChatWindow的sendMessage
  • 13.10.4 ChatWindow的onEnter
  • 13.10.5 ChatWindow的template
  • 13.10.6 处理键盘动作
  • 13.10.7 使用ngModel
  • 13.10.8 点击Send按钮
  • 13.11 ChatMessage组件
  • 13.11.1 设置incoming属性
  • 13.11.2 ChatMessage的template
  • 13.12 总结
  • 第14章 高级组件
  • 14.1 样式
  • 14.1.1 视图(样式)封装
  • 14.1.2 Shadow DOM封装
  • 14.1.3 不使用封装
  • 14.2 创建popup指令:引用并修改宿主元素
  • 14.2.1 popup指令的结构
  • 14.2.2 使用ElementRef
  • 14.2.3 绑定到host属性
  • 14.2.4 添加按钮并使用exportAs
  • 14.3 使用内容投影创建消息面板
  • 14.3.1 改变host属性的CSS类
  • 14.3.2 使用ng-content
  • 14.4 查询相邻的指令:编写标签页
  • 14.4.1 Tab组件
  • 14.4.2 Tabset组件
  • 14.4.3 使用Tabset
  • 14.5 生命周期钩子
  • 14.5.1 OnInit和OnDestroy
  • 14.5.2 OnChanges
  • 14.5.3 DoCheck
  • 14.5.4 AfterContentInit、AfterViewInit、AfterContentChecked和AfterViewChecked
  • 14.6 高级模板
  • 14.6.1 重写ngIf:ngBookIf
  • 14.6.2 重写ngFor:ngBookRepeat
  • 14.7 变更检测
  • 14.7.1 自定义变更检测
  • 14.7.2 Zones
  • 14.7.3 可观察对象和OnPush
  • 14.8 总结
  • 第15章 测试
  • 15.1 测试驱动?
  • 15.2 端对端测试与单元测试
  • 15.3 测试工具
  • 15.3.1 Jasmine
  • 15.3.2 Karma
  • 15.4 编写单元测试
  • 15.5 Angular单元测试框架
  • 15.6 测试前准备
  • 15.7 测试服务类和HTTP
  • 15.7.1 HTTP要点
  • 15.7.2 伪装
  • 15.7.3 模拟
  • 15.7.4 Http MockBackend
  • 15.7.5 TestBed.configureTestingModule和提供者
  • 15.7.6 测试getTrack方法
  • 15.8 测试组件间的路由
  • 15.8.1 为测试创建路由器
  • 15.8.2 模拟依赖
  • 15.8.3 探子
  • 15.9 回到测试代码
  • 15.9.1 fakeAsync和advance
  • 15.9.2 inject
  • 15.9.3 测试ArtistComponent组件初始化
  • 15.9.4 测试ArtistComponent方法
  • 15.9.5 测试ArtistComponent DOM模板值
  • 15.10 测试表单
  • 15.10.1 创建一个ConsoleSpy
  • 15.10.2 安装ConsoleSpy
  • 15.10.3 配置测试模块
  • 15.10.4 测试表单
  • 15.10.5 重构表单测试
  • 15.11 测试HTTP请求
  • 15.11.1 测试POST方法
  • 15.11.2 测试DELETE方法
  • 15.11.3 测试HTTP头
  • 15.11.4 测试YouTubeService
  • 15.12 总结
  • 第16章 把AngularJS应用升级到Angular
  • 16.1 周边概念
  • 16.2 我们要构建什么
  • 16.3 把AngularJS映射到Angular
  • 16.4 关于互操作性的需求
  • 16.5 AngularJS应用
  • 16.5.1 AngularJS应用的HTML
  • 16.5.2 代码概览
  • 16.5.3 AngularJS:PinsService
  • 16.5.4 AngularJS:配置路由
  • 16.5.5 AngularJS:HomeController
  • 16.5.6 AngularJS:HomeController模板
  • 16.5.7 AngularJS:pin指令
  • 16.5.8 AngularJS:pin指令模板
  • 16.5.9 AngularJS:AddController
  • 16.5.10 AngularJS:AddController模板
  • 16.5.11 AngularJS:总结
  • 16.6 构建混合式应用
  • 16.6.1 混合式应用的结构
  • 16.6.2 引导混合式应用
  • 16.6.3 我们要升级什么
  • 16.6.4 插一小段内容:类型文件
  • 16.6.5 写Angular的PinControlsComponent
  • 16.6.6 使用Angular的PinControlsComponent
  • 16.6.7 把Angular的PinControlsComponent降级到AngularJS
  • 16.6.8 用Angular添加图钉
  • 16.6.9 把AngularJS的PinsService和$state升级到Angular
  • 16.6.10 写Angular版的AddPinComponent
  • 16.6.11 使用AddPinComponent
  • 16.6.12 把Angular的服务暴露给AngularJS
  • 16.6.13 实现AnalyticsService
  • 16.6.14 把Angular的AnalyticsService降级到AngularJS
  • 16.6.15 在AngularJS中使用AnalyticsService
  • 16.7 总结
  • 16.8 参考资源
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。