作者简介:Brad Dayley是一位拥有逾20多年企业应用和Web界面开发经验的高级软件工程师。Brad曾使用JavaScript、jQuery、AngularJS和相关技术,设计和实现了从应用服务器乃至复杂Web 2.0界面的大量应用和服务。Brad撰写的书籍包括Node.js、MongoDB and AngularJS Web Development、Sams Teach Yourself NoSQL with MongoDB in 24 Hours、Sams Teach Yourself jQuery and JavaScript in 24 Hours和jQuery and JavaScript Phrasebook。内容简介: 快速掌握AngularJS Web开发技术AngularJS是Web开发领域最激动人心的创新技术之一,它为整个开发过程提供结构,旨在简化Web应用的开发和测试。网站已不再是简单的静态内容——相反,网站更趋动态化,通常单个页面即可用作整个站点或应用。AngularJS允许Web开发者直接在网页中构建此类应用需要的程序逻辑,将客户端Web应用的数据模型绑定到后端服务和数据库。AngularJS还允许扩展HTML,从而可以方便地在HTML模板文件中表示UI设计逻辑。《AngularJS开发秘籍》展示如何创建功能强大的交互性Web应用,这些应用具有结构良好、便于维护、可重用的代码库。你还将学习如何使用AngularJS的创新MVC模式来开发结构和设计俱佳的网页和Web应用。AngularJS强制Web开发者坚守底层结构和设计规则,从而更加优秀。• 了解AngularJS的组织方式,学习设计AngularJS•  应用的最佳实践•  学习如何定义模块和使用依赖注入• 使用内置指令快速构建AngularJS模板,以增强用户体验•将UI元素绑定到数据模型,使模型和UI的改变自动关联• 自定义扩展HTML的AngularJS指令• 实现可缩放图片、可展开列表和其他富UI组件•  实现与Web服务器交互的客户端服务•  构建动态浏览器视图,以提供更丰富的用户交互•  创建便于重用的自定义服务•  为AngularJS应用设计单元和端到端测试
前 言 欢迎阅读《AngularJS开发秘籍》。本书将带你进入AngularJS领域,帮助你学习如何使用AngularJS构建高度可交互并且结构良好的Web应用。本书涵盖AngularJS框架的基础知识,以及如何使用它为Web应用构建出设计良好、可重用的组件。AngularJS是Web开发领域中出现的最令人兴奋的创新技术之一。 本前言将涵盖下面的内容: ● 本书读者对象 ● 应该阅读本书的原因 ● 通过阅读本书可以完成的任务 ● AngularJS是什么以及它成为一项优秀技术的原因 ● 本书内容安排 ● 示例代码的位置 接下来让我们进入正题。 本书读者对象 本书面向已经具有HTML基础知识,并且已经使用现代编程语言完成了一些编程工作的开发者。了解JavaScript和jQuery技术的读者会更容易理解本书,但本书并不要求读者必须掌握JavaScript基础知识。 应该阅读本书的原因 本书将讲解如何创建强大的、可交互的Web应用,而且这些应用将具有良好的结构和易于重用的代码库(它们也易于维护)。AngularJS的一个卓越特性是:它将通过坚持使用底层结构和设计的方式,最终强制你成为一位更优秀的Web开发者。 本书的典型读者通常希望掌握AngularJS相关知识,用于构建高度可交互的Web应用。他们也将希望使用AngularJS的革新MVC方式实现设计和结构良好的Web页面及应用。总的来说,AngularJS提供了一种易于实现、完全集成的Web开发平台,通过它我们可以实现强大的Web 2.0应用。 通过本书可以学到的知识 通过阅读本书,你将学会如何构建现实世界中的动态网站和Web应用。网站已经不再是由集成图片和格式化文本的HTML页面组成的简单静态内容。相反,网站变得更加动态,单个页面通常可以用作整个网站或者应用。 使用AngularJS技术,我们可以直接在Web页面中构建逻辑(将客户端Web应用的数据模型绑定到后端服务和数据库)。通过AngularJS,我们还可以轻松地扩展HTML的功能,这样HTML模板文件中就可以轻松地表达出UI设计逻辑。下面是我们在阅读本书时将学到的一些知识: ● 如何使用内置指令快速地构建AngularJS模板,用于增强用户体验 ● 如何将UI元素绑定到元素模型,使模型改变的同时UI随之改变,反之亦然 ● 如何将鼠标和键盘事件直接绑定到数据模型和后端功能,用于提供强大的用户交互 ● 如何定义自定义AngularJS指令,用于扩展HTML语言 ● 如何实现可以与Web服务器交互的客户端服务 ● 如何构建提供丰富用户交互的动态浏览器视图 ● 如何创建可以轻松在其他AngularJS应用中重用的自定义服务 ● 如何通过自定义AngularJS指令实现富UI组件,如可缩放的图像和可扩展列表 AngularJS AngularJS是由Google开发的一个客户端框架。它是由JavaScript编写的,采用的是jQuery库的一个简化版本:jQuery Lite。AngularJS背后的理念是:提供一个框架,它可以使用MVC框架帮助开发者实现设计良好、结构良好的Web页面和应用。 AngularJS提供了用于处理浏览器中用户输入、操作客户端数据和控制浏览器视图中元素显示的所有功能。下面是AngularJS具有的一些优点。 ● 数据绑定:AngularJS有一个非常清晰的方法,可以使用它强大的作用域机制将数据绑定到HTML元素。 ● 可扩展性:通过AngularJS架构可以轻松地扩展语言的(几乎)所有方面,从而提供自己的自定义实现。 ● 清晰:AngularJS强迫你编写清晰、有逻辑的代码。 ● 可重用的代码:结合可扩展性和清晰的代码,使用AngularJS可以轻松编写出可重用的代码。实际上,当创建自定义服务时,该语言将强制你这样做。 ● 支持:Google在该项目上投入很大,因此当其他类似的项目失败时,AngularJS成功地坚持了下来。 ● 兼容性:AngularJS是基于JavaScript编写的,与jQuery有着紧密的关系。因此,在环境中集成AngularJS,并在AngularJS框架的结构中重用现有代码将变得更加容易。 本书内容安排 本书分为11章和一个附录。 第1章提供一些JavaScript基础知识,有助于你熟悉JavaScript语言。该章还讲解使用Node.js服务器创建开发环境的过程,在接下来的某些示例中我们将使用该开发环境。即使你已经熟悉JavaScript,至少也应该查看开头的几节,帮助你了解如何创建开发环境。 第2章涵盖AngularJS框架的基础知识。我们将学习AngularJS的组织方式和如何设计AngularJS应用。 第3章涵盖AngularJS应用的基本结构。我们将学习如何定义模块以及AngularJS中依赖注入的工作方式。 第4章涵盖数据模型(在AngularJS中称为作用域)和其他AngularJS组件的关系。我们将学习作用域层次结构是如何工作的。 第5章涵盖AngularJS模板的结构。我们将学习如何在模板中添加元素(反映模型中的数据),以及如何使用筛选器自动地格式化元素,因为它们将被渲染到浏览器视图中。 第6章涵盖内置的AngularJS指令。你将会学到如何通过多种方式实现指令,从将简单JavaScript数组转换成多个HTML元素,到将Web页面中的元素直接绑定到作用域模型中。你还将学会如何在控制器中处理鼠标和键盘事件。 第7章涵盖自定义AngularJS指令的创建。你将学到如何构建可以增强现有HTML元素的指令,以及如何创建为用户提供更佳交互性的全新HTML元素。 第8章涵盖你将会遇到的事件类型以及如何管理它们。你将会学习如何创建和处理自定义事件。该章也涵盖如何监视作用域模型中的值,并在它们发生改变时进行处理。 第9章涵盖AngularJS提供的内置服务。通过这些服务,你可以使用HTTP请求与Web服务器进行通信、与浏览器进行交互,并在Web页面中实现动画元素。 第10章涵盖如何使用AngularJS中可用的技术创建自定义服务。自定义服务是使功能可重用的一种优秀方式,因为我们可以将自定义服务提供的功能注入多个应用中。 第11章涵盖如何使用AngularJS机制构建富交互页面元素。该章大致可以作为其他所有章节的一个回顾。你将会学习如何使用AngularJS构建可展开/可折叠元素、拖放功能、可缩放图像、标签面板和星级评定。 附录A讨论AngularJS中的单元测试和端到端测试。该附录提供设计测试时的一些简单忠告,还提供额外资源的一些链接。 获取示例代码 在本书中,你将会在列表块中找到示例代码。列表块的标题中包含含有源代码的文件的名称。你可以访问GitHub上示例中的源代码文件和图片。 可以访问网站注册信息,从而方便地访问本书的任何更新信息、下载内容和勘误信息。 还可以访问www.tupwk.com.cn/downpage,输入本书的书名或者ISBN,下载源代码文件。 结束语 我希望你能像我一样享受对本书和AngularJS的学习。它是一项卓越的、新颖的技术,使用时也非常有趣。很快你就可以加入到许多其他使用AngularJS构建交互性网站和Web应用的开发者中。