当前位置:首页 > 工业技术
AngularJS深度剖析与最佳实践
AngularJS深度剖析与最佳实践

AngularJS深度剖析与最佳实践PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:雪狼,破狼,彭洪伟编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111520962
  • 页数:322 页
图书介绍:本书深入讲解AngularJS的基本概念及其背后的原理,包括完整的开发框架与最佳实践。不仅抽丝剥茧地展现了AngularJS的诸多特性与技巧,还讲解了工程实践中容易陷入的“坑”,是从小工走向专家的必备参考。本书首先从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。然后对于在实战中提到的一些概念进行深入讲解:包括这些概念怎么用,什么时候用,什么时候不用等。接下来讲解这些概念背后的原理,看看这些概念之间是如何协作的,包括AngularJS的工作模式等。最后介绍最佳实践,将主要介绍实战经验,包括如何发掘一些不常用但很有用的API,如何把看起来平淡无奇的框架特性运用得出神入化等。此外,作者还从实际工作中总结了一些开发技巧和容易陷入的“坑”,以及常见的优秀工具及其使用经验,这对于实际开发非常有参考价值。
《AngularJS深度剖析与最佳实践》目录

第1章 从实战开始 1

1.1 环境准备 1

1.2 需求分析与迭代计划 3

1.3 创建项目 11

1.3.1 Yeoman 11

1.3.2 FrontJet 13

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 什么是UI 70

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中实现DI 107

3.3.3 Angular中的DI 108

3.3.4 DI与minify 109

3.4 脏检查机制 110

3.4.1 浏览器事件循环和Angular的MVW 110

3.4.2 Angular中的$watch函数 111

3.4.3 Angular中的$digest函数 113

3.4.4 Angular中的$apply 116

3.5 指令的生命周期 117

3.5.1 Injecting 118

3.5.2 compile和link过程 120

3.6 Angular中的$parse、$eval和$observe、$watch 122

3.6.1 $parse和$eval 122

3.6.2 $observe和$watch 124

3.6.3 使用场景 125

3.7 REST 127

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 如何测试Controller 151

4.7.3 如何测试Service 151

4.7.4 如何测试Filter 152

4.7.5 如何测试组件型指令 152

4.7.6 如何测试装饰器型指令 153

4.7.7 如何测试网络请求 153

4.7.8 如何测试setTimeout类功能 153

4.7.9 如何Mock Service 154

4.8 如何设计友好的REST API 155

4.8.1 URI 155

4.8.2 资源拆分 155

4.8.3 资源命名 155

4.8.4 方法 156

4.8.5 返回值 157

4.8.6 综合案例:分页API 159

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 移除不必要的$watch 163

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-hint 173

4.13.1 通过batarang插件使用angular-hint 174

4.13.2 手动集成angular-hint 174

4.13.3 Module hints 175

4.13.4 Controllerhints 176

4.13.5 Directive hints 176

第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 兼容老式API 198

5.6.2 Ajax请求配置的源码分析 201

5.7 在代码中注入Filter 205

5.7.1 复用指定Filter 205

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 依赖注入——$injector 214

5.10.1 $injector的创建 214

5.10.2 $injector注入方式 215

5.10.3 $injector的妙用 217

5.11 在指令中让使用者自定义模板 219

5.12 跨多个节点的ng-if或ng-repeat 223

5.13 阻止事件冒泡和浏览器默认行为 224

5.14 动态绑定HTML 226

第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 指令优先级-Priority 243

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 Resolve 255

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 RESTful 257

7.5 过滤器 258

7.5.1 命名 258

7.5.2 重用已有Filter 258

7.5.3 禁止复杂的Filter 258

7.6 指令 259

7.6.1 命名 259

7.6.2 Template声明 259

7.6.3 link函数的scope参数命名 259

7.6.4 pre-link和post-link 260

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优于Style 262

7.8 工具 262

7.9 其他 264

7.9.1 内置$服务替代原生服务 264

7.9.2 Promise解决回调地狱 264

7.9.3 减少$watch 265

7.9.4 TDD 265

第8章 工具 267

8.1 WebStorm与IntelliJ 267

8.2 Chrome 269

8.3 Gulp 273

8.4 Swagger 274

8.4.1 前后端分离 274

8.4.2 Swagger 275

8.4.3 契约测试 277

8.5 TSD 277

8.6 Postman 280

8.6.1 安装 280

8.6.2 功能介绍 280

第9章 杂项知识 282

9.1 Angular 2.0 282

9.2 SEO 284

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 Ionic 300

附录A 相关资源 301

后记 提问的智慧 318

返回顶部