搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
AngularJS深度剖析与最佳实践
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111520962
  • 作      者:
    雪狼,破狼,彭洪伟编著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2016
收藏
作者简介
  雪狼,资深前端架构师,热爱技术,热衷编程,16年来从未中断。涉足的软件开发领域从桌面软件到Web应用,涵盖翻译软件、通讯软件、安全软件、企业级系统等。他还是AngularJS中文社区管理员,在社区分享了大量技术文章,受到读者的好评与称赞。

  破狼,ThoughtWorks一线码农,高级架构师、咨询师国内Angular早布道者之一,ngnice、ngShowCase创建人之一。Angular中文社区“狼主”,全栈攻城狮,同时也运维了一个前端微信公众号“shuang_lang_shuo”。

  彭洪伟,ThoughWorks一线码农,Angular早期使用者,ngnice的早期贡献者之一。除了前端技术,对Java、Scala、Ruby等也均有涉猎,并且翻译了构建工具SBT的文档
展开
内容介绍
  在前端开发中,如何弥补语言的先天不足?如何干净漂亮地解耦?如何设计“小而美”的类/代码块?对于一个“极客”来说,总是要用一些漂亮的技术来解决这些问题,而Angular当之无愧是这类技术之一。本书深入讲解AngularJS的基本概念及其背后的原理,包括完整的开发框架与实践,从最初的框架搭建开始,快速迭代,逐步丰富项目的骨肉,并在这个过程中展现AngularJS的诸多特性与技巧,内容由浅入深、讲解细腻、实战性强,是从AngularJS的小工走向专家的必备参考。
  主要内容:
  从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。
  介绍一些基本概念是什么,为什么,怎么用,什么时候用,什么时候不用等。
  AngularJS中的MVVM模式、启动过程、脏检查机制、指令生命周期等。
  AngularJS实践,如前后端分离部署、如何设计友好的REST API、移除不必要的$watch、用打包代替动态加载等。
  AngularJS开发技巧与实战中的“坑”,如表单验证错误信息显示、Angular中的AOP机制、在代码中注入Filter、动态绑定HTML等。
展开
目录

前 言
第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
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证