译者序

译者序

2012年上半年,我所在的公司正在开发一个二次开发平台,它的目标是从数据库开始,能自由、方便地定制业务数据、规则、流程、服务接口,还有展现层。在对展现层的实现部分,我思考了很久,对其中部分技术细节还是缺乏好的思路,于是把眼光转到开源社区,无意中发现了AngularJS这样一个框架,详细考察之后,我认为它在很大程度上满足了我们的需求,继而投入了不小的精力进行研究。

在这两年里,我差不多遍历了它的源码,了解了很多细节的实现机制,并且与当时研究得较深的几位朋友,比如angularjs.cn的作者严清,资深开发者王宇鹏等进行了交流,获得了很多有益的信息,与此同时,也跟Avalon的作者司徒正美有过一些讨论,对前端MV*有了更深入的认识。 后来,团队中的大漠穷秋翻译的《用AngularJS开发下一代Web应用》由电子工业出版社出版。作为国内第一本关于AngularJS的译著,它带动了学习和了解AngularJS框架的浪潮,也因此与朴灵的《深入浅出Node.js》一起,成为前端开发人员拓展思维和技能的两本最受欢迎图书。

到了2014年,我离开工作9年的地方,来到新的工作环境——苏宁云商,本来心里权衡过,很可能不再有使用AngularJS的业务场景了,不曾想到入职之后面对的几个项目都属于云产品,正适合使用这类框架,因此又继续了对它的深入研究。

在此期间,图灵公司的李松峰老师发布了本书招募译者的消息,我心里一动就联系了他。经过沟通之后,我与另外两名译者,豌豆荚的@赵望野和腾讯的@basecss,合作翻译本书,每人负责1/3的内容。第一次正式翻译图书,我很忐忑,翻译过程中也遇到了一些困难。此前我虽翻译过一些技术文章,其中一篇恰好与AngularJS有关,但翻译图书跟翻译文章的差异很大,有很多东西要考虑一致性和连贯性。

本书内容丰富,从零开始向读者讲述AngularJS,首先介绍AngularJS的基本概念,以及在一些场景下的简单应用。接着,本书花很大篇幅讲解AngularJS的周边体系。我们使用这样一个框架,自然需要对前端的架构有一些考虑,包括代码的组织,一些第三方库的选择,甚至还有项目的建立、开发、测试、发布等各环节的综合考虑,这不再是一个简单的编码过程,而是一整套工程化的流程。

另外,我们也可能需要为这样一套前端的技术栈选择相应的后端服务,比如,可以使用Node.js自己建立,或者是利用互联网上已有的一些强大平台(比如Amazon等),在这些平台的帮助下,我们的AngularJS应用将如虎添翼,到达新的高度。

使用一个框架却不去深入了解它的原理,就会一直流于表面,当面对比较复杂的场景时,就不到优化方案。因此,本书的后面部分也深入剖析了AngularJS的一些原理和拓展主题,比如国际化、移动开发、调试、性能优化等。

无论是零基础的入门级开发者,还是有过一定经验的中高级开发人员,都能从本书中受益。

目前,前端MV*框架百花齐放,AngularJS只是其中较流行的一种。这些框架孰优孰劣,其实并无定论,每个框架都会有它的适用场景,都有它优秀的一面,也没有哪个框架能够通吃所有业务场景,如果因为对一个框架的喜爱,而把它引入到不适合的产品中,一定是有害无益。

因此,我们希望读者在阅读本书时,能够多思考,愿大家在学习本书过程中都能收获满满。这样的话,作为本书译者的我们也将感同身受,与大家一同分享其中的喜悦和满足感。

在本书的出版过程中,除了我们三名译者之外,图灵公司的编辑李静也付出了很大的努力,支付宝的玉伯、51JS版主宝玉、百度的berg提出了不少宝贵意见,对此,一并表示衷心感谢。

徐飞
2014年7月

何鹏飞的个人致谢

感谢我所在的团队,给我提供非常好的环境,让我能学习成长。

感谢我在腾讯的导师@TooBug,让我接触到很多新东西,当然包括这本书所讲述的AngularJS。在翻译的过程中他也为我提供了很多帮助。

感谢图灵公司的出版团队,本书的出版离不开他们的努力和帮助。

最后,还要感谢没有在这里一一列出的帮助过我的每一个人。

赵望野的个人致谢

Web技术日新月异,每天早上翻看各种技术博客,都有一种逆水行舟不进则退的危机感,而这两年来前端MV*框架无疑是Web前端开发领域最热门的话题之一。之前已经读过本书英文版,其中涵盖了AngularJS开发的全部细节,示例代码清晰易懂,因此接下了中文版的翻译工作,并迫不及待地推荐给所有想学习AngularJS的朋友。感谢李松峰老师的帮助,感谢图灵出版团队的辛勤工作,感谢在翻译本书过程中给予帮助的所有朋友。

目录

  • 版权声明
  • 在微博上分享这本书
  • 献词
  • 译者序
  • 引言
  • 第 1 章 初识AngularJS
  • 第 2 章 数据绑定和第一个AngularJS Web应用
  • 第 3 章 模块
  • 第 4 章 作用域
  • 第 5 章 控制器
  • 第 6 章 表达式
  • 第 7 章 过滤器
  • 第 8 章 指令简介
  • 第 9 章 内置指令
  • 第 10 章 指令详解
  • 第 11 章 AngularJS模块加载
  • 第 12 章 多重视图和路由
  • 第 13 章 依赖注入
  • 第 14 章 服务
  • 第 15 章 同外界通信:XHR和服务器通信
  • 第 16 章 XHR实践
  • 第 17 章 promise
  • 第 18 章 服务器通信
  • 第 19 章 测试
  • 第 20 章 事件
  • 第 21 章 架构
  • 第 22 章 Angular动画
  • 第 23 章 digest循环和$apply
  • 第 24 章 揭秘Angular
  • 第 25 章 Angular精华扩展
  • 第 26 章 移动应用
  • 第 27 章 本地化
  • 第 28 章 缓存
  • 第 29 章 安全性
  • 第 30 章 AngularJS和IE浏览器
  • 第 31 章 构建Angular Chrome应用
  • 第 32 章 优化Angular应用
  • 第 33 章 调试AngularJS
  • 第 34 章 下一步
  • 第 35 章 总结
  • ngbook-2014年10月更新