AngularJS深度剖析与最佳实践 (实战)

AngularJS深度剖析与最佳实践 (实战)
作者:
雪狼,破狼,彭洪伟 著
语言:
中文
类型:
EPUB
页数:
318页
大小:
3.06 MB
出版社:
机械工业出版社
出版时间:
2015-11-01
ISBN:
9787111520962
分类:

内容简介

本书系统讲解AngularJS的基本概念与背后的原理,包括完整的开发框架与最佳实践。
不仅抽丝剥茧地展现了AngularJS的诸多特性与技巧,还讲解了工程实践中容易陷入的“坑”,是从AngularJS的小工走向专家的必备参考。
本书首先从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。
然后专门介绍基本概念,对于在实战中提到的一些概念进行深入讲解:是什么,为什么,怎么用,什么时候用,什么时候不用等。
接下来讲解这些概念背后的原理,看看这些概念之间是如何协作的,包括AngularJS的工作模式等。
最后介绍最佳实践,将主要介绍实战经验,包括如何把一些不常用但很有用的API发掘出来,如何把看起来平淡无奇的框架特性运用得出神入化等。
此外,作者还从实际工作中总结了一些开发技巧和容易陷入的“坑”,以及觉得对自己帮助最大的工具及其使用经验,这对于实际开发非常有参考价值。

目录


前 言
第1章 从实战开始1
1.1 环境准备1
1.2 需求分析与迭代计划3
1.3 创建项目11
1.3.1 Yeoman11
1.3.2 FrontJet13
1.4 实现第一个页面:注册18
1.4.1 约定优于配置18
1.4.2 定义路由19
1.4.3 把后端程序跑起来24
1.4.4 连接后端程序26
1.4.5 添加验证器28
1.4.6 “错误信息提示”指令31
1.4.7 用过滤器生成用户友好的提示
信息33
1.4.8 实现自定义验证规则34
1.4.9 实现图形验证码36
1.5 实现更多功能:主题38
1.5.1 实现主题列表38
1.5.2 实现过滤功能40
1.5.3 实现分页功能42
1.5.4 实现主题树44
1.5.5 实现递归主题树56
1.5.6 实现“查看详情”功能58
1.6 实现AOP功能59
1.6.1 实现登录功能60
1.6.2 实现对话框65
1.6.3 实现错误处理功能67
1.7 实战小结68
第2章 概念介绍70
2.1 什么是UI70
2.2 模块71
2.3 作用域72
2.4 控制器73
2.5 视图74
2.6 指令75
2.6.1 组件型指令76
2.6.2 装饰器型指令79
2.7 过滤器81
2.8 路由82
2.9 服务83
2.9.1 服务85
2.9.2 工厂86
2.10 承诺88
2.11 消息92
2.12 单元测试93
2.12.1 MOCK的使用方式94
2.12.2 测试工具与断言库95
2.13 端到端测试96
第3章 背后的原理98
3.1 Angular中的MVVM模式98
3.2 Angular启动过程102
3.3 依赖注入106
3.3.1 什么是依赖注入106
3.3.2 如何在JavaScript中实现DI107
3.3.3 Angular中的DI108
3.3.4 DI与minify109
3.4 脏检查机制110
3.4.1 浏览器事件循环和Angular的MVW110
3.4.2 Angular中的$watch函数111
3.4.3 Angular中的$digest函数113
3.4.4 Angular中的$apply116
3.5 指令的生命周期117
3.5.1 Injecting118
3.5.2 compile和link过程120
3.6 Angular中的$parse、$eval和$observe、$watch122
3.6.1 $parse和$eval122
3.6.2 $observe和$watch124
3.6.3 使用场景125
3.7 REST127
3.7.1 REST的六大要点128
3.7.2 REST的四个级别130
3.8 跨域131
3.8.1 同源策略与跨域131
3.8.2 如何解决跨域问题132
3.9 前端安全技术133
3.9.1 前端攻击的基本原理和类型133
3.9.2 前端安全与前后端分工136
3.9.3 移动时代的特殊挑战137
3.9.4 安全无止境138
第4章 最佳实践140
4.1 调整开发协作流程140
4.2 前后端分离部署143
4.3 样式中心页144
4.4 CSS的扩展语言与架构145
4.5 HTML的表意性146
4.6 table,天使还是魔鬼148
4.7 测试什么?怎么测?150
4.7.1 准备工作150
4.7.2 如何测试Controller151
4.7.3 如何测试Service151
4.7.4 如何测试Filter152
4.7.5 如何测试组件型指令152
4.7.6 如何测试装饰器型指令153
4.7.7 如何测试网络请求153
4.7.8 如何测试setTimeout类功能153
4.7.9 如何Mock Service154
4.8 如何设计友好的REST API155
4.8.1 URI155
4.8.2 资源拆分155
4.8.3 资源命名155
4.8.4 方法156
4.8.5 返回值157
4.8.6 综合案例:分页API159
4.9 使用controller as vm方式160
4.9.1 源码分析161
4.9.2 推荐用法和优势161
4.9.3 路由中的controller as语法162
4.9.4 指令中的controller as语法163
4.10 移除不必要的$watch163
4.10.1 双向绑定和watchers函数164
4.10.2 其他指令中的watchers函数166
4.10.3 慎用$watch和及时销毁167
4.10.4 one-time绑定168
4.10.5 滚屏加载170
4.10.6 其他171
4.11 总是用ng-model作为输出172
4.12 用打包代替动态加载173
4.13 引入Angular-hint173
4.13.1 通过batarang插件使用angular-hint174
4.13.2 手动集成angular-hint174
4.13.3 Module hints175
4.13.4 Controller hints176
4.13.5 Directive hints176
第5章 Angular开发技巧178
5.1 $timeout的妙用178
5.2 ngTemplate寄宿方式182
5.3 在非独立作用域指令中实现scope绑定185
5.4 表单验证错误信息显示186
5.5 Angular中的AOP机制187
5.5.1 拦截器案例188
5.5.2 拦截器源码分析192
5.5.3 Angular中的装饰器195
5.5.4 Angular装饰器源码分析197
5.6 Ajax请求和响应数据的转换198
5.6.1 兼容老式API198
5.6.2 Ajax请求配置的源码分析201
5.7 在代码中注入Filter205
5.7.1 复用指定Filter205
5.7.2 重用多个Filter案例206
5.7.3 Filter源码分析207
5.8 防止Angular表达式闪烁208
5.8.1 表达式闪烁解决方案208
5.8.2 ngCloak源码分析208
5.8.3 最佳实践209
5.9 实现前端权限控制209
5.9.1 事件方案210
5.9.2 resolve方案211
5.10 依赖注入—$injector214
5.10.1 $injector的创建214
5.10.2 $injector注入方式215
5.10.3 $injector的妙用217
5.11 在指令中让使用者自定义模板219
5.12 跨多个节点的ng-if或ng-repeat223
5.13 阻止事件冒泡和浏览器默认行为224
5.14 动态绑定HTML226
第6章 Angular常见的“坑”229
6.1 module函数的声明和获取重载229
6.2 ngModel绑定值不更改232
6.2.1 验证引起的model值不显示233
6.2.2 原型链继承问题235
6.3 指令不生效239
6.4 Angular中锚点的使用240
6.5 ngRepeat验证失效241
6.5.1 简单的验证显示242
6.5.2 复杂的验证显示242
6.6 有些指令需要唯一的根节点243
6.7 指令优先级-Priority243
6.8 ngRepeat报重复内容错误244
6.9 单元测试中promise不触发245
第7章 编码规范247
7.1 目录结构248
7.1.1 按照类型优先、业务功能其次的组织方式248
7.1.2 按照业务功能优先、类型其次的组织方式249
7.2 模块组织250
7.2.1 命名250
7.2.2 Module声明250
7.2.3 依赖声明251
7.2.4 Module组件声明251
7.3 控制器252
7.3.1 命名252
7.3.2 ControllerAs vm声明252
7.3.3 初始化数据253
7.3.4 DOM操作253
7.3.5 依赖的声明253
7.3.6 精简控制器逻辑254
7.3.7 禁止用$rootScope传递数据255
7.3.8 格式化显示逻辑255
7.3.9 Resolve255
7.4 服务256
7.4.1 命名256
7.4.2 代码复用256
7.4.3 使用场景256
7.4.4 Service返回值257
7.4.5 缓存不变数据257
7.4.6 RESTful257
7.5 过滤器258
7.5.1 命名258
7.5.2 重用已有Filter258
7.5.3 禁止复杂的Filter258
7.6 指令259
7.6.1 命名259
7.6.2 Template声明259
7.6.3 link函数的scope参数命名259
7.6.4 pre-link和post-link260
7.6.5 DOM操作260
7.6.6 Directive分类260
7.6.7 Directive不是封装jQuery代码“天堂”260
7.6.8 自动回收261
7.7 模板261
7.7.1 表达式绑定261
7.7.2 Src、Href问题261
7.7.3 Class优于Style262
7.8 工具262
7.9 其他264
7.9.1 内置$服务替代原生服务264
7.9.2 Promise解决回调地狱264
7.9.3 减少$watch265
7.9.4 TDD265
第8章 工具267
8.1 WebStorm与IntelliJ267
8.2 Chrome269
8.3 Gulp273
8.4 Swagger274
8.4.1 前后端分离274
8.4.2 Swagger275
8.4.3 契约测试277
8.5 TSD277
8.6 Postman280
8.6.1 安装280
8.6.2 功能介绍280
第9章 杂项知识282
9.1 Angular 2.0282
9.2 SEO284
9.3 IE兼容性287
9.3.1 问题概述287
9.3.2 问题分类288
9.4 访问统计292
9.5 响应式布局293
9.6 国际化294
9.7 动画296
9.7.1 CSS动画296
9.7.2 JavaScript动画297
9.8 手机版开发298
9.8.1 Hybrid应用298
9.8.2 Ionic300
附录A 相关资源301
后记 提问的智慧318

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
免责申明
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,不以盈利为目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48小时内予以删除。

📖 支持知识自由流动

每一本书的稳定访问,都离不开服务器、存储与带宽的长期维护。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索