发表于2024-12-23
用AngularJS编写高级应用的完整指南
这是一个令Web开发人员激动的时代,掌握JavaScript语言技能的人才变得炙手可热。AngularJS迅速蜕变为领先的新一代客户端Web框架;可供个人、小团队和大公司构建和测试基于浏览器的、极其复杂的应用。
《AngularJS高级编程》内容广泛,涵盖构建AngularJS应用乃至内嵌、构建系统和自动执行集成测试等高级主题。
如果你已经熟悉基本编程知识,并希望编写在浏览器UI中显示复杂数据的Web应用,或快捷高效地模拟本地应用的移动Web应用,那么本书将是值得你反复研读的必备指南。
主要内容
◆ 从头构建一个简单应用www.stockdog.io,在便捷动手练习的引导下讲解基本构建块
◆ 详细讲解AngularJS中将数据绑定到模板的高级方式
◆ 讲解AngularJS架构,并演示各个组成部分是如何协作的
◆ 详述服务、工厂和提供者之间的差异,并说明每种技术的使用时机
◆ 介绍可供测试和调试AngularJS应用的技术
◆ 演示许多可与AngularJS一起使用的流行工具,包括Yeoman、RequireJS、Browserify、Mocha、Jasmine、Bootstrap、Ionic、Moment和Mongoose
Valeri Karpov,是MongoDB的一位NodeJS工程师,他维护着诸多与MongoDB相关的开源JavaScript模块。从2010年开始他一直开发AngularJS应用,包括MongoDB的内部持续集成框架和BookaLokal的移动网站。
Diego Netto,是一位软件咨询师和开源布道者。作为一家独立咨询机构的创建者,Diego帮助创业公司和企业利用强大的开源技术交付直观产品。
作为JavaScript开发者,现在是一个激动人心的时刻。随着服务器端JavaScript开源社区的快速发展(在2013年12月,NodeJS包管理器拥有50 000个包,而到了2014年10月这个数字增加了一倍),下一代客户端框架的流行(例如AngularJS),完全基于JavaScript构建Web工具的公司数量不断增长,对JavaScript语言技能的需求也不断增多。现代工具允许我们使用一种语言构建复杂的、基于浏览器客户端的高度并发服务器,甚至是混合的原生移动应用。AngularJS迅速成为主流的下一代客户端Web框架,它允许个人、小团队和大型公司构建和测试基于浏览器的复杂应用。
AngularJS介绍
随着JavaScript社区的快速发展,AngularJS在2012年6月发布1.0版本时横空出世。尽管它是一个较新的框架,但它在构建应用时提供了强大的特性和优雅的工具,这使它成为许多开发者选择的前端框架。AngularJS最初由Google的测试工程师Misko Hevery开发,他发现现有的工具(例如jQuery)很难构建出需要显示大量复杂数据的浏览器用户界面(User Interface,UI)。Google现在有一个专门的团队用于开发和维护AngularJS以及相关的工具。一些活跃的Google应用也是使用AngularJS开发的,从DoubleClick Digital Marketing Platform到PlayStation 3上的YouTube应用。AngularJS的人气在迅速增长:到2014年10月,Quantcast Top10k网站中有143个都使用了AngularJS,并迅速超过了最接近的对手:KnockoutJS、ReactJS和EmberJS。
那么AngularJS特别之处在哪里呢?从https://angularjs.org/网站中借用一个对AngularJS特别简洁的描述:“写更少的代码,早点去喝啤酒”。AngularJS的核心是一个称为“双向数据绑定”的概念,通过它可将超文本标记语言(Hypertext Markup Language,HTML)和层叠样式表(Cascading Style Sheet,CSS)绑定到JavaScript变量的状态。无论何时变量发生了变化,AngularJS都将更新所有应用了该JavaScript变量的HTML和CSS,如下面的代码所示:
Hello
如果变量shouldShow被改为false,AngularJS将自动隐藏div元素。变量shouldShow并没有什么特殊之处:AngularJS不要求在特殊类型中封装变量;变量shouldShow可以是一个普通的JavaScript布尔值。
尽管双向绑定是AngularJS的基础,但它只是冰山一角。AngularJS提供了一个优雅的框架,可以通过一种最大化重用性和测试性的方式来组织客户端JavaScript。另外,AngularJS有一组丰富的测试工具,例如Karma、protractor和ngScenario(参见第9章),它们已经做了优化以便用于AngularJS。AngularJS专注于可测试的架构和丰富的测试工具,这使它成为关键客户端JavaScript的自然选择。它不仅可以使你快速编写复杂的应用,还提供了工具和结构,使应用的测试变得非常容易。事实上,Google的DoubleClick团队将AngularJS的“full testing story”引用为将它的数字营销平台迁移到AngularJS的6个最重要原因之一。下面是对AngularJS特点的一些简单概述。
双向数据绑定
在许多较老的客户端JavaScript库(例如jQuery和Backbone)中,我们希望自己操作文档对象模型(Document Object Model,DOM)。换句话说,如果希望改变div元素的HTML内容,需要自己编写必需的JavaScript。例如:
$('div').html('Hello, world!');
AngularJS反转了这个模式,使HTML成为如何显示数据的明确来源。双向数据绑定的主要目的是将HTML或CSS属性(例如,div元素的HTML内容或背景颜色)绑定到JavaScript变量的值。当JavaScript变量的值改变时,HTML或CSS属性将随之更新。反之亦然:如果用户在input字段中输入,被绑定的JavaScript变量的值将被更新为用户输入的内容。例如,下面的HTML将问候输入字段中输入的名字。可以在相应章节的样例代码data_binding.html中找到该样例:简单地右击该文件,并在浏览器中打开它——不需要Web服务器或其他依赖!
Hello, {{user}} !
不需要使用JavaScript!指令ngModel和{{}}简写语法将完成所有工作。在这个简单的样例中,AngularJS体现出的优点非常有限,但在第1章构建一个真正的应用时,你将看到数据绑定将极大地简化JavaScript。多亏了数据绑定,否则我们就很难将800行的jQuery 意大利面条式代码简化成40行清晰的、独立于DOM的AngularJS代码。
DOM作用域
DOM作用域是AngularJS另一个强大的特性。你可能已经猜到,数据绑定并不是免费的午餐;代码复杂性一定会被转移到某个地方。不过,AngularJS允许在DOM中创建作用域,它的行为类似于JavaScript和其他编程语言中的作用域。这将允许我们把HTML和JavaScript分割成独立的、可重用的块。例如,下面的样例实现的功能与之前样例的功能相同,但使用了两个不同的作用域:一个用于使用英文进行问候,另一个使用的是西班牙语。
Hello, {{user}}!
Hola, {{user}}!
指令ngController是一种创建新作用域的方式,通过它可将相同的代码为不同的目的进行重用。第4章包含了对双向数据绑定的全面概述,并对内部实现细节进行了讨论。
指令
AngularJS高级编程 下载 mobi pdf epub txt 电子书 格式 2024
AngularJS高级编程 下载 mobi epub pdf 电子书好书~
评分还不错啊还不错啊还不错啊
评分原来需要字数够才能得京豆啊坑爹
评分东西很好,比超市便宜。
评分不错,正版书,活动非常划算
评分不错,很有帮助。
评分很好,书是正版的,比书店买的便宜,支持京东
评分这个恐怕要变屠龙技了
评分还可以,还没开始看,在京东买了很多书了。
AngularJS高级编程 mobi epub pdf txt 电子书 格式下载 2024