AngularJS 权威教程 ng-book PDF 文档
本书是学习 AngularJS 的公认经典,内容全面,讲解通俗,适合各层次的学习者。作者拥有丰富的 AngularJS 开发和教学经验,也是一位全栈工程师。全书 35 章,由浅入深地讲解了 AngularJS 的基本概念和基本功能,包括模块、作用域、控制器、表达式、指令、路由、依赖注入等,重要的是书中对每一个概念的讲解都配合了恰如其分的示例和代码,让读者通过动手实践,切身体会到这些概念的含义和价值。本书后半部分深入到 AngularJS 应用开发,系统地讨论了服务器通信、事件、架构、动画、本地化、安全、缓存、移动应用等主题。
本书适合各个层次的 AngularJS 开发人员学习,无论是出于工作需要,还是好奇心的驱使,只要你想彻底理解 AngularJS,本书都会让你满载而归。
Angular JS权威教程
作译者简介
扉页
版权
版权声明
在微博上分享这本书
献词
译者序
引言
目录
第 1 章 初识AngularJS
1.1 浏览器如何获取网页
1.2 浏览器是什么
1.3 AngularJS是什么
1.3.1 AngularJS有什么不同
1.3.2 许可
第 2 章 数据绑定和第一个AngularJS Web 应用
2.1 AngularJS中的数据绑定
2.2 简单的数据绑定
2.3 数据绑定的最佳实践
第 3 章 模块
3.1 参数
3.1.1 name(字符串)
3.1.2 requires(字符串数组)
第 4 章 作用域
4.1 视图和$scope的世界
4.2 就是HTML而已
4.3 作用域能做什么
4.4 $scope的生命周期
4.4.1 创建
4.4.2 链接
4.4.3 更新
4.4.4 销毁
4.5 指令和作用域
第 5 章 控制器
5.1 控制器嵌套(作用域包含作用域)
第 6 章 表达式
6.1 解析AngularJS表达式
6.2 插值字符串
第 7 章 过滤器
7.1 自定义过滤器
7.2 表单验证
第 8 章 指令简介
8.1 指令:自定义HTML元素和属性
8.2 向指令中传递数据
第 9 章 内置指令
9.1 基础ng属性指令
9.1.1 布尔属性
9.1.2 类布尔属性
9.2 在指令中使用子作用域
第 10 章 指令详解
10.1 指令定义
10.1.1 restrict(字符串)
10.1.2 优先级(数值型)
10.1.3 terminal(布尔型)
10.1.4 template(字符串或函数)
10.1.5 templateUrl(字符串或函数)
10.1.6 replace(布尔型)
10.2 指令作用域
10.2.1 scope参数(布尔型或对象)
10.2.2 隔离作用域
10.3 绑定策略
10.3.1 transclude
10.3.2 controller(字符串或函数)
10.3.3 controllerAs(字符串)
10.3.4 require(字符串或数组)
10.4 AngularJS的生命周期
10.4.1 编译阶段
10.4.2 compile(对象或函数)
10.4.3 链接
10.5 ngModel
10.5.1 自定义渲染
10.5.2 属性
10.6 自定义验证
第 11 章 AngularJS 模块加载
11.1 配置
11.2 运行块
第 12 章 多重视图和路由
12.1 安装
12.2 布局模板
12.3 路由
12.4 $location服务
12.5 路由模式
12.5.1 HTML5模式
12.5.2 路由事件
12.5.3 关于搜索引擎索引
12.6 更多关于路由的内容
12.6.1 页面重新加载
12.6.2 异步的地址变化
第 13 章 依赖注入
13.1 推断式注入声明
13.2 显式注入声明
13.3 行内注入声明
13.4 $injector API
13.4.1 annotate()
13.4.2 get()
13.4.3 has()
13.4.4 instantiate()
13.4.5 invoke()
13.5 ngMin
13.5.1 安装
13.5.2 使用ngMin
13.5.3 工作原理
第 14 章 服务
14.1 注册一个服务
14.2 使用服务
14.3 创建服务时的设置项
14.3.1 factory()
14.3.2 service()
14.3.3 provider()
14.3.4 constant()
14.3.5 value()
14.3.6 何时使用value()和constant()
14.3.7 decorator()
第 15 章 同外界通信:XHR 和服务器 通信
15.1 使用$http
15.2 设置对象
15.3 响应对象
15.4 缓存HTTP请求
15.5 拦截器
15.6 设置$httpProvider
15.7 使用$resource
15.8 安装
15.9 应用$resource
15.9.1 基于HTTP GET方法
15.9.2 基于非HTTP GET类型的方法
15.9.3 $resource实例
15.9.4 $resource实例是异步的
15.9.5 附加属性
15.10 自定义$resource方法
15.11 $resource设置对象
15.12 $resource服务
15.13 使用Restangular
15.14 Restangular简介
15.15 安装Restangular
15.16 Restangular对象简介
15.17 使用Restangular
15.17.1 我的HTTP方法们怎么办
15.17.2 自定义查询参数和头
15.18 设置Restangular
第 16 章 XHR 实践
16.1 跨域和同源策略
16.2 JSONP
16.3 使用CORS
16.3.1 设置
16.3.2 服务器端CORS支持
16.3.3 简单请求
16.3.4 非简单请求
16.4 服务器端代理
16.5 使用JSON
16.6 使用XML
16.7 使用AngularJS进行身份验证
16.7.1 服务器端需求
16.7.2 客户端身份验证
16.8 和MongoDB通信
第 17 章 promise
17.1 什么是promise
17.2 为什么使用promise
17.3 Angular中的promise
17.4 链式请求
17.4.1 all(promises)
17.4.2 defer()
17.4.3 reject(reason)
17.4.4 when(value)
第 18 章 服务器通信
18.1 自定义服务器端
18.2 安装NodeJS
18.3 安装Express
18.4 调用API
18.5 使用Amazon AWS的无服务器应用
18.5.1 DynamoDB
18.5.2 简单通知服务(SNS)
18.5.3 简单队列服务(SQS,Simple Queue Service)
18.5.4 简单存储服务(S3)
18.5.5 安全令牌服务(STS)
18.6 AWSJS + Angular
18.7 开始
18.8 介绍
18.9 安装
18.10 运行
18.11 用户认证/鉴权
18.12 UserService
18.13 迁移到AWS上
18.14 AWSService
18.15 在Dynamo上开始
18.16 $cacheFactory
18.17 保存currentUser
18.18 上传到S3
18.19 处理文件上传
18.20 查询Dynamo
18.21 在HTML显示列表
18.22 出售我们的作品
18.23 使用Stripe
18.24 使用Firebase的无服务器应用
18.25 使用Firebase和Angular的三方数据绑定
18.26 从AngularFire开始
18.26.1 注册并创建一个Firebase
18.26.2 包含Firebase和AngularFire库
18.26.3 把Firebase作为依赖项添加
18.26.4 绑定模型到Firebase URL
18.26.5 数据同步
18.27 在AngularFire中排序
18.28 Firebase事件
18.29 显式同步
18.30 用AngularFire进行认证
18.31 认证事件
18.31.1 $logout()
18.31.2 $createUser()
18.32 使用Firebase托管部署你的Angular应用
18.32.1 安装Firebase工具
18.32.2 部署你的Web站点
18.33 除了AngularFire之外
第 19 章 测试
19.1 为什么要做测试
19.2 测试策略
19.3 开始测试
19.4 AngularJS测试的类型
19.4.1 单元测试
19.4.2 端到端测试
19.5 开始
19.6 初始化Karma配置文件
19.7 配置选项
19.8 使用RequireJS
19.9 Jasmine
19.9.1 细则套件
19.9.2 定义一个细则
19.10 预期
19.10.1 内置的匹配器
19.10.2 安装和卸载
19.11 端到端的介绍
19.11.1 选项输入
19.11.2 重复循环元素
19.12 模拟和测试帮助函数
19.13 模拟$httpBackend
19.14 测试一个应用
19.14.1 测试路由
19.14.2 测试页面内容
19.14.3 测试控制器
19.14.4 测试服务和工厂
19.14.5 测试过滤器
19.14.6 测试模板
19.14.7 测试指令
19.15 测试事件
19.16 对Angular的持续集成
19.17 Protractor
19.18 配置
19.19 配置选项
19.20 编写测试
19.21 测试实践
19.21.1 我们的应用
19.21.2 测试的策略
19.22 建立我们的第一个测试
19.23 测试输入框
19.23.1 测试列表
19.23.2 测试路由
19.24 页面对象
第 20 章 事件
20.1 什么是事件
20.2 事件传播
20.2.1 使用$emit来冒泡事件
20.2.2 使用$broadcast向下传递事件
20.3 事件监听
20.4 事件对象
20.5 事件相关的核心服务
20.5.1 核心系统的$emitted事件
20.5.2 核心系统的$broadcast事件
第 21 章 架构
21.1 目录结构
21.2 模块
21.3 控制器
21.4 指令
21.5 测试
第 22 章 Angular 动画
22.1 安装
22.2 它是如何运作的
22.3 使用CSS3过渡
22.4 使用CSS3动画
22.5 交错CSS过渡/动画
22.5.1 交错CSS过渡
22.5.2 交错CSS动画
22.5.3 什么指令支持交错动画
22.6 使用JavaScript动画
22.7 微调动画
22.8 DOM回调事件
22.9 内置指令的动画
22.9.1 ngRepeat动画
22.9.2 ngView动画
22.9.3 ngInclude动画
22.9.4 ngSwitch动画
22.9.5 ngIf动画
22.9.6 ngClass动画
22.9.7 ngShow/ngHide动画
22.10 创建自定义动画
22.10.1 addClass()
22.10.2 removeClass()
22.10.3 enter()
22.10.4 leave()
22.10.5 move()
22.11 与第三方库集成
22.11.1 Animate.css
22.11.2 TweenMax/TweenLite
第 23 章 digest 循环和$apply
23.1 $watch列表
23.2 脏值检查
23.3 $watch
23.4 $watchCollection
23.5 页面中的$digest循环
23.6 $evalAsync列表
23.7 $apply
23.8 何时使用$apply
第 24 章 揭秘Angular
24.1 视图的工作原理
24.1.1 编译阶段
24.1.2 运行时
第 25 章 AngularJS 精华扩展
25.1 AngularUI
25.2 安装
25.3 ui-router
25.3.1 安装
25.3.2 事件
25.3.3 $stateParams
25.3.4 $urlRouterProvider
25.3.5 创建一个导航程序
25.4 ui-utils
25.4.1 安装
25.4.2 mask
25.4.3 ui-event
25.4.4 ui-format
第 26 章 移动应用
26.1 响应式Web应用
26.2 交互
26.2.1 安装
26.2.2 ngTouch
26.2.3 $swipe服务
26.2.4 angular-gestures和多点触控手势
26.2.5 安装angular-gestures
26.2.6 使用angular-gestures
26.3 Cordova中的原生应用程序
26.4 Cordova入门
26.4.1 Cordova开发流程
26.4.2 平台
26.4.3 插件
26.4.4 构建
26.4.5 模拟和运行
26.4.6 开发阶段
26.4.7 Anguar中的Cordova服务
26.5 引入Angular
26.6 使用Yeoman构建
26.6.1 修改Yeoman以便使用Cordova
26.6.2 装配Yeoman构建
26.6.3 构建移动部分
26.6.4 处理引导程序
第 27 章 本地化
27.1 angular-translate
27.2 安装
27.3 教你的应用一种新语言
27.4 多语言支持
27.5 运行时切换语言
27.6 加载语言
27.7 angular-gettext
27.8 安装
27.9 用法
27.10 字符串提取
27.11 翻译字符串
27.12 编译新语言
27.13 改变语言
第 28 章 缓存
28.1 什么是缓存
28.2 Angular中的缓存
28.2.1 $cacheFactory简介
28.2.2 缓存对象
28.3 $http中的缓存
28.3.1 默认的$http缓存
28.3.2 自定义缓存
28.4 为$http设置默认缓存
第 29 章 安全性
29.1 严格的上下文转义:$sce服务
29.2 URL白名单
29.3 URL黑名单
29.4 $sce API
29.4.1 getTrusted
29.4.2 parse
29.4.3 trustAs
29.4.4 isEnabled
29.5 配置$sce
29.6 可信赖的上下文类型
第 30 章 AngularJS 和IE 浏览器
30.1 Ajax缓存
30.2 AngularJS中的SEO
30.3 使Angular应用可被索引
30.4 服务端
30.4.1 hashbang语法
30.4.2 HTML5路由模式
30.5 服务端处理SEO的选项
30.5.1 使用Node/Express中间件
30.5.2 使用Apache重写URL
30.5.3 使用Ngnix代理URL
30.6 获取快照
30.7 使用Zombie.js获取HTML快照
30.8 使用grunt-html-snapshot
30.9 Prerender.io
30.10 <noscript>方法
第 31 章 构建Angular Chrome 应用
31.1 了解Chrome应用
31.1.1 manifest.json
31.1.2 背景脚本
31.1.3 视图
31.2 构建你的Chrome应用
31.3 搭建框架
31.4 manifest.json
31.5 tab.html
31.6 在Chrome中加载应用
31.7 主模块
31.8 构建主页
31.9 使用Wundergroud的天气API
31.10 设置界面
31.11 实现用户服务
31.12 城市自动填充/自动完成
31.13 添加时区支持
第 32 章 优化Angular 应用
32.1 优化什么
32.2 优化$digest循环
32.3 优化ng-repeat
32.4 优化$digest调用
32.5 优化$watch函数
32.5.1 bindonce
32.5.2 $watch函数的自动优化
32.6 优化过滤器
32.6.1 不变的数据
32.6.2 过滤后的数据
32.7 页面加载优化技巧
32.7.1 压缩
32.7.2 利用$templateCache
第 33 章 调试AngularJS
33.1 从DOM中调试
33.1.1 scope()
33.1.2 controller()
33.1.3 injector()
33.1.4 inheritedData()
33.2 调试器
33.3 Angular Batarang
33.3.1 安装Batarang
33.3.2 检查模型
33.3.3 检查性能
33.3.4 检查依赖图表
33.3.5 可视化应用
第 34 章 下一步
34.1 jqLite和jQuery
34.2 了解基本工具
34.3 Grunt
34.4 grunt-angular-templates
34.4.1 安装
34.4.2 用法
34.4.3 可用选项
34.4.4 用法
34.5 Lineman
34.6 Bower
34.6.1 安装
34.6.2 Bower简介
34.6.3 配置Bower
34.6.4 搜索程序包
34.6.5 安装程序包
34.6.6 使用程序包
34.6.7 移除程序包
34.7 Yeoman
34.7.1 安装
34.7.2 用法
34.7.3 创建路由
34.7.4 创建控制器
34.7.5 创建自定义指令
34.7.6 创建自定义过滤器
34.7.7 创建视图
34.7.8 创建服务
34.7.9 创建装饰器
34.8 配置Angular生成器
34.8.1 CoffeeScript
34.8.2 安全压缩
34.8.3 跳过索引
34.9 测试应用
34.10 打包应用
34.11 打包模板
第 35 章 总结
关注图灵教育
封底
欢迎加入图灵社区
下载地址:https://www.wenjiangs.com/wp-content/uploads/staticcdn/pdf/d1262f02-9147c63c.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论