特别优惠
跟上新发行和促销的步伐。注册,听取我们的意见。
•最快速和最简单的一步一步介绍为microsoft.net开发的AngularJS编程
•以学生的。net技能为基础,掌握当今用于高速web应用程序开发的#1 JavaScript框架!
•涵盖AngularJS的基本和高级技术,前端开发工具,以及将AngularJS集成到new和
现有的。net应用程序
•第一本介绍使用AngularJS和SignalR的书,SignalR是一项突破性的。net技术,为web应用程序提供了实时功能
•通过实践指导,现实(不做作)的例子,问答,测验,练习,提示等教学
在24个1小时或更少的会话中,你将在你的Microsoft . net环境中使用AngularJS。使用简单,循序渐进的方法,每节课都建立在你的。net技能和知识的基础上,帮助你快速学习AngularJS的基本知识,并使用它来简化任何web开发项目。
一步一步的指示仔细引导你完成最常见的问题、问题和任务。
问答部分、测验和练习帮助你建立和测试你的知识。
顺便说一下笔记提供有趣的信息。
你自己试试侧边栏提供建议或教授更简单的方法来做某事。
小心!警告会提醒你潜在的问题,帮助你避开灾难。
丹尼斯·谢泼德他是伊利诺伊州芝加哥NextTier Education的前端架构师。他为私募股权,保险,医疗保健,教育和分销行业提供企业解决方案。克里斯托弗•米勒是西门罗建筑事务所的建筑师。他为高等教育、私募股权和可再生能源行业提供了解决方案。AJ利普达克他是West Monroe Partners的高级顾问,专门从事现代web应用程序开发。他为电信、医疗保健、金融和分销行业提供了变革性解决方案。
学习如何……
读者们,在ZIP文件中,您将找到每个章节的文件夹,其中包含与“介绍中提到的图书组织”相关的练习。每一章都建立在另一章的基础上,每个章节文件夹都是应用程序当前状态的“快照”,因为你获得了更多的知识和对技能的信心。第22章还包括一个ASP。Angular应用与之交互的。NET Web API项目。
下载样例页面(包括第三章及索引)
&>
介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1小时:介绍现代前端开发. . . . . . . . . . . . . . . . . . . . .5
为什么一切看起来都如此不同?. . . . . . . . . . . . . . . . . . . . . . . . . . .5
代码有何不同?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
选择前端开发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
为什么角?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
为什么Angular 1仍然重要?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
常见问题11
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2小时:JavaScript模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
五个JavaScript提示和技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
JavaScript模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
常见问题26
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
第3小时:修补现代前端开发工具. . . . . . . . . . .29
该工具景观 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
节点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30.
包管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30.
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
常见问题35
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4小时:掌握模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
角模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
创建模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
常见问题40
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
小时5:覆盖控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
角控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
美元的范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
控制器继承 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
什么应该和不应该进入控制器. . . . . . . . . . . . . . . . . . . .45
最佳实践 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
常见问题47
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
第6小时:了解视图,数据绑定和事件处理. . . . . . . . . . .49
角的观点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
数据绑定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
与ng-model双向数据绑定 . . . . . . . . . . . . . . . . . . . . . . . . . . .53
数据绑定性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
多个控制器在一个视图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
多个模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
角事件绑定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
视图的最佳实践 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
常见问题61
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
小时7:我发现服务:部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
角服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
服务和工厂 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
使用服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
常见问题69
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
8小时:发现服务:第二部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
木豆使用服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
承诺,问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
常见问题78
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
小时9:使用内置指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
角指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
内置角指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
常见问题86
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
小时10:征服自定义指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
为什么是自定义指令?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
链接功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
指令范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
元素和属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
常见问题101
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
第11小时:依赖于依赖注入. . . . . . . . . . . . . . . . . . . . . . .103
控制反转和依赖注入. . . . . . . . . . . . . . . . . . . .103
依赖注入在。net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
使用角的迪 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
常见问题109
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
12小时:合理化路由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
路由在一个单页面应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
与角设置路由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
清理你的url与HTML5模式. . . . . . . . . . . . . . . . . . . . . . .117
在路由更改前使用Resolve执行代码. . . . . . . . . . . . . . .118
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
常见问题120
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
第13小时:实现应用程序组织. . . . . . . . . . . . . . . . . . . . . . .123
角在一个文件中 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
将应用程序分解为单独的文件. . . . . . . . . . . . . . . . . . . . .124
按文件类型组织应用程序. . . . . . . . . . . . . . . . . . . . . . . .126
按功能组织应用程序. . . . . . . . . . . . . . . . . . . . . . . . .126
应用专业技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
常见问题128
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
小时14:找出过滤器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
内置Angular过滤器的格式化示例. . . . . . . . . . . . . . . .129
创建自己的角过滤器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
使用一个过滤器来搜索ng-repeat . . . . . . . . . . . . . . . . . . . . . . . . . . .143
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
常见问题146
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
小时15:接近角模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
设计模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
控制器模式和原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
服务模式和原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
角体系结构模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
常见问题153
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
第16小时:制作组件通信. . . . . . . . . . . . . . . . . . . . . . . .155
组件之间的通信 . . . . . . . . . . . . . . . . . . . . . . . . . .155
从控制器调用指令函数. . . . . . . . . . . . . . . . . . . . .157
使用$看沟通 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
使用事件进行交流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
嵌套控制器通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
常见问题171
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
小时17:演示部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
自动化部署任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
编写生产就绪的Angular代码. . . . . . . . . . . . . . . . . . . . . . . . .177
错误检查角代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
最小化和连接你的Angular代码. . . . . . . . . . . . . . . . . .181
将你的Angular代码部署到Microsoft Azure . . . . . . . . . . . . . . . . . .182
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
常见问题183
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
小时18:解开单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
单元测试在角 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
业力和茉莉花 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186
让一切都设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186
测试控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
测试服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
测试指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
常见问题197
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
19小时:破坏调试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
调试策略与技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
常见问题222
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
第20小时:在ASP中应用Angular净Web表单 . . . . . . . . . . . . . . . . . . . .225
现代化Web应用程序的策略. . . . . . . . . . . . . . . . . . . . . .225
将Web表单转换成角 . . . . . . . . . . . . . . . . . . . . . . . . . . .226
与角增加Web表单 . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
常见问题246
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
第21小时:在ASP中应用AngularNET MVC . . . . . . . . . . . . . . . . . . . . . . . . .247
构建一个示例ASP。净MVC应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . .247
将Angular添加到ASP中。净MVC应用程序 . . . . . . . . . . . . . . . . . . . . . . . .256
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
常见问题263
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
第22小时:在ASP中使用Angular净Web API . . . . . . . . . . . . . . . . . . . . . .265
使用Angular和Web API的单页应用. . . . . . . . . . . . . . . . . . . . .265
创建一个简单的Web API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
消费的Web API角 . . . . . . . . . . . . . . . . . . . . . . . . . . . .273
消费与角其他api . . . . . . . . . . . . . . . . . . . . . . . . . . .285
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
常见问题291
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292
第23小时:在ASP中使用Angular净SignalR . . . . . . . . . . . . . . . . . . . . . . .293
什么时候应该使用SignalR?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293
配置SignalR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
添加SignalR OWIN管道 . . . . . . . . . . . . . . . . . . . . . . . . . . .294
在API中发送SignalR消息. . . . . . . . . . . . . . . . . . . . . . . . . .297
在Angular中接收SignalR消息. . . . . . . . . . . . . . . . . . . . . . . . .299
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305
常见问题305
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
24小时:关注未来 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
Angular的当前状态是什么?. . . . . . . . . . . . . . . . . . . . . . . . . .307
Angular 2中有哪些变化?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308
如何为Angular 2做准备?. . . . . . . . . . . . . . . . . . . . . . . . . . .309
ES6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311
Web组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312
为什么这本书的前23个小时比最后一个小时更重要. . . .315
总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316
常见问题316
车间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316
锻炼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
指数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319