知识 分享 互助 懒人建站

懒人建站专注于网页素材下载,提供网站模板、网页设计、ps素材、图片素材等,服务于【个人站长】【网页设计师】和【web开发从业者】的代码素材与设计素材网站。

懒人建站提供网页素材下载、网站模板
知识 分享 互助!

《angularjs权威教程》pdf文字版免费下载

作者:佳明妈 来源:web前端开发 2016-10-02 人气:
《angularjs权威教程》pdf中文文字版,下面是随机从《angularjs权威教程》pdf文字版中复制出来的一部分文字,web前端开发认为这本angularjs权威教程是学习angularjs的第一本必读书。 当然,页

《angularjs权威教程》pdf中文文字版,下面是随机从《angularjs权威教程》pdf文字版中复制出来的一部分文字,web前端开发认为这本angularjs权威教程是学习angularjs的第一本必读书。

当然,页可以读读其他相关angularjs教程,多看看牛人博客,多看别人的angularjs插件也是非常有益的。

《angularjs权威教程》pdf中文文字版下载地址:http://pan.baidu.com/s/1pKjuucN   提取码:em32
懒人建站http://www.51xuediannao.com/

第1 章 初识AngularJS....................................1

1.1 浏览器如何获取网页...................................1

1.2 浏览器是什么...............................................2

1.3 AngularJS 是什么.........................................2

1.3.1 AngularJS 有什么不同......................3

1.3.2 许可...................................................3

第2 章 数据绑定和第一个AngularJS

Web 应用................................................4

2.1 AngularJS 中的数据绑定.............................5

2.2 简单的数据绑定...........................................6

2.3 数据绑定的最佳实践...................................8

第3 章 模块.......................................................10

3.1 参数.............................................................11

3.1.1 name(字符串) .............................11

3.1.2 requires(字符串数组)..............11

第4 章 作用域...................................................12

4.1 视图和$scope 的世界................................12

4.2 就是HTML 而已........................................13

4.3 作用域能做什么.........................................14

4.4 $scope 的生命周期....................................14

4.4.1 创建.................................................15

4.4.2 链接.................................................15

4.4.3 更新.................................................15

4.4.4 销毁.................................................15

4.5 指令和作用域.............................................15

第5 章 控制器...................................................16

5.1 控制器嵌套(作用域包含作用域) .........18

第6 章 表达式...................................................20

6.1 解析AngularJS 表达式..............................20

6.2 插值字符串.................................................21

第7 章 过滤器...................................................24

7.1 自定义过滤器.............................................29

7.2 表单验证.....................................................29

第8 章 指令简介...............................................43

8.1 指令:自定义HTML 元素和属性............44

8.2 向指令中传递数据.....................................50

第9 章 内置指令............................................... 56

9.1 基础ng 属性指令.......................................56

9.1.1 布尔属性.........................................56

9.1.2 类布尔属性.....................................58

9.2 在指令中使用子作用域.............................59

第10 章 指令详解............................................ 72

10.1 指令定义...................................................72

10.1.1 restrict(字符串) .................74

10.1.2 优先级(数值型) .....................75

10.1.3 terminal(布尔型) .................75

10.1.4 template(字符串或函数)......76

10.1.5 templateUrl(字符串或

函数).........................................76

10.1.6 replace(布尔型) ...................77

10.2 指令作用域...............................................77

10.2.1 scope 参数(布尔型或对象)....78

10.2.2 隔离作用域.................................80

10.3 绑定策略...................................................81

10.3.1 transclude .................................82

10.3.2 controller(字符串或函数)....84

10.3.3 controllerAs(字符串)..........86

10.3.4 require(字符串或数组)........86

10.4 AngularJS 的生命周期.............................87

10.4.1 编译阶段.....................................87

10.4.2 compile(对象或函数)............88

10.4.3 链接.............................................89

10.5 ngModel.....................................................90

10.5.1 自定义渲染.................................92

10.5.2 属性.............................................92

10.6 自定义验证...............................................93

图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权

2 目 录

第11 章 AngularJS 模块加载....................... 95

11.1 配置.......................................................... 95

11.2 运行块...................................................... 96

第12 章 多重视图和路由............................... 98

12.1 安装.......................................................... 98

12.2 布局模板.................................................. 99

12.3 路由.......................................................... 99

12.4 $location 服务...................................... 103

12.5 路由模式................................................ 105

12.5.1 HTML5 模式............................ 105

12.5.2 路由事件................................... 106

12.5.3 关于搜索引擎索引................... 107

12.6 更多关于路由的内容............................. 107

12.6.1 页面重新加载........................... 107

12.6.2 异步的地址变化....................... 107

第13 章 依赖注入.......................................... 108

13.1 推断式注入声明..................................... 109

13.2 显式注入声明........................................ 110

13.3 行内注入声明........................................ 110

13.4 $injector API ....................................... 111

13.4.1 annotate()............................... 111

13.4.2 get()......................................... 111

13.4.3 has()......................................... 111

13.4.4 instantiate()......................... 112

13.4.5 invoke()................................... 112

13.5 ngMin ...................................................... 112

13.5.1 安装.......................................... 113

13.5.2 使用ngMin................................ 113

13.5.3 工作原理................................... 113

第14 章 服务................................................... 114

14.1 注册一个服务........................................ 114

14.2 使用服务................................................ 116

14.3 创建服务时的设置项............................. 118

14.3.1 factory()................................. 119

14.3.2 service()................................. 119

14.3.3 provider()............................... 120

14.3.4 constant()............................... 122

14.3.5 value()..................................... 122

14.3.6 何时使用value()和

constant()............................... 123

14.3.7 decorator()............................. 123

第15 章 同外界通信:XHR 和服务器

通信................................................... 125

15.1 使用$http .............................................. 125

15.2 设置对象................................................ 128

15.3 响应对象................................................ 130

15.4 缓存HTTP 请求..................................... 131

15.5 拦截器.................................................... 132

15.6 设置$httpProvider............................... 133

15.7 使用$resource....................................... 134

15.8 安装........................................................ 134

15.9 应用$resource....................................... 135

15.9.1 基于HTTP GET 方法.............. 135

15.9.2 基于非HTTP GET 类型的

方法.......................................... 136

15.9.3 $resource 实例........................ 137

15.9.4 $resource 实例是异步的........ 138

15.9.5 附加属性.................................. 138

15.10 自定义$resource 方法........................ 138

15.11 $resource 设置对象............................ 139

15.12 $resource 服务.................................... 141

15.13 使用Restangular .................................. 142

15.14 Restangular 简介................................... 142

15.15 安装Restangular .................................. 143

15.16 Restangular 对象简介........................... 144

15.17 使用Restangular .................................. 145

15.17.1 我的HTTP 方法们怎么办.... 146

15.17.2 自定义查询参数和头........... 147

15.18 设置Restangular .................................. 147

第16 章 XHR 实践........................................ 153

16.1 跨域和同源策略.................................... 153

16.2 JSONP .................................................... 153

16.3 使用CORS............................................. 154

16.3.1 设置.......................................... 154

16.3.2 服务器端CORS 支持.............. 155

16.3.3 简单请求.................................. 155

16.3.4 非简单请求............................... 156

16.4 服务器端代理........................................ 157

16.5 使用JSON.............................................. 157

16.6 使用XML .............................................. 158

16.7 使用AngularJS 进行身份验证.............. 159

16.7.1 服务器端需求........................... 159

16.7.2 客户端身份验证....................... 160

16.8 和MongoDB 通信.................................. 165

图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权

目 录 3

第17 章 promise ............................................168

17.1 什么是promise .......................................168

17.2 为什么使用promise ...............................169

17.3 Angular 中的promise .............................170

17.4 链式请求.................................................173

17.4.1 all(promises)..........................174

17.4.2 defer() .....................................174

17.4.3 reject(reason)........................174

17.4.4 when(value) .............................174

第18 章 服务器通信......................................175

18.1 自定义服务器端.....................................175

18.2 安装NodeJS............................................175

18.3 安装Express ...........................................176

18.4 调用API .................................................178

18.5 使用Amazon AWS 的无服务器应用....181

18.5.1 DynamoDB................................181

18.5.2 简单通知服务(SNS) ............181

18.5.3 简单队列服务(SQS,

Simple Queue Service) ...........182

18.5.4 简单存储服务(S3) ...............182

18.5.5 安全令牌服务(STS) ............182

18.6 AWSJS + Angular...................................182

18.7 开始.........................................................182

18.8 介绍.........................................................184

18.9 安装.........................................................184

18.10 运行.......................................................185

18.11 用户认证/鉴权......................................186

18.12 UserService .........................................190

18.13 迁移到AWS 上....................................191

18.14 AWSService ..........................................194

18.15 在Dynamo 上开始................................196

18.16 $cacheFactory .....................................196

18.17 保存currentUser ................................197

18.18 上传到S3..............................................199

18.19 处理文件上传.......................................201

18.20 查询Dynamo ........................................203

18.21 在HTML 显示列表..............................204

18.22 出售我们的作品...................................205

18.23 使用Stripe ............................................206

18.24 使用Firebase 的无服务器应用............209

18.25 使用Firebase 和Angular 的三方

数据绑定...............................................210

18.26 从AngularFire 开始..............................211

18.26.1 注册并创建一个Firebase.....211

18.26.2 包含Firebase 和AngularFire

库...........................................212

18.26.3 把Firebase 作为依赖项

添加.......................................212

18.26.4 绑定模型到Firebase URL....212

18.26.5 数据同步...............................213

18.27 在AngularFire 中排序..........................214

18.28 Firebase 事件.........................................215

18.29 显式同步...............................................215

18.30 用AngularFire 进行认证......................216

18.31 认证事件...............................................217

18.31.1 $logout() .............................218

18.31.2 $createUser()......................218

18.32 使用Firebase 托管部署你的Angular

应用.......................................................218

18.32.1 安装Firebase 工具................218

18.32.2 部署你的Web 站点..............219

18.33 除了AngularFire 之外..........................219

第19 章 测试................................................... 220

19.1 为什么要做测试.....................................220

19.2 测试策略.................................................220

19.3 开始测试.................................................220

19.4 AngularJS 测试的类型...........................221

19.4.1 单元测试...................................221

19.4.2 端到端测试...............................222

19.5 开始.........................................................222

19.6 初始化Karma 配置文件........................223

19.7 配置选项.................................................226

19.8 使用RequireJS .......................................231

19.9 Jasmine....................................................233

19.9.1 细则套件.................................233

19.9.2 定义一个细则.........................233

19.10 预期.......................................................234

19.10.1 内置的匹配器.......................234

19.10.2 安装和卸载...........................237

19.11 端到端的介绍.......................................238

19.11.1 选项输入...............................244

19.11.2 重复循环元素.......................244

19.12 模拟和测试帮助函数...........................245

19.13 模拟$httpBackend ...............................246

19.14 测试一个应用.......................................251

19.14.1 测试路由...............................252

19.14.2 测试页面内容.......................255

19.14.3 测试控制器...........................257

图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权

4 目 录

19.14.4 测试服务和工厂................... 259

19.14.5 测试过滤器........................... 263

19.14.6 测试模板............................... 264

19.14.7 测试指令............................... 266

19.15 测试事件.............................................. 269

19.16 对Angular 的持续集成........................ 270

19.17 Protractor .............................................. 270

19.18 配置...................................................... 272

19.19 配置选项.............................................. 273

19.20 编写测试.............................................. 275

19.21 测试实践.............................................. 278

19.21.1 我们的应用........................... 278

19.21.2 测试的策略........................... 279

19.22 建立我们的第一个测试....................... 279

19.23 测试输入框.......................................... 281

19.23.1 测试列表............................... 282

19.23.2 测试路由............................... 284

19.24 页面对象.............................................. 285

第20 章 事件................................................... 287

20.1 什么是事件............................................ 287

20.2 事件传播................................................ 287

20.2.1 使用$emit 来冒泡事件............ 288

20.2.2 使用$broadcast 向下传递

事件.......................................... 288

20.3 事件监听................................................ 289

20.4 事件对象................................................ 289

20.5 事件相关的核心服务............................. 290

20.5.1 核心系统的$emitted 事件...... 290

20.5.2 核心系统的$broadcast

事件.......................................... 290

第21 章 架构................................................... 292

21.1 目录结构................................................ 292

21.2 模块........................................................ 293

21.3 控制器.................................................... 294

21.4 指令........................................................ 296

21.5 测试........................................................ 296

第22 章 Angular 动画.................................. 297

22.1 安装........................................................ 297

22.2 它是如何运作的..................................... 297

22.3 使用CSS3 过渡...................................... 298

22.4 使用CSS3 动画...................................... 300

22.5 交错CSS 过渡/动画............................... 301

22.5.1 交错CSS 过渡.......................... 301

22.5.2 交错CSS 动画.......................... 302

22.5.3 什么指令支持交错动画........... 302

22.6 使用JavaScript 动画.............................. 302

22.7 微调动画................................................ 303

22.8 DOM 回调事件...................................... 304

22.9 内置指令的动画.................................... 304

22.9.1 ngRepeat 动画.......................... 304

22.9.2 ngView 动画.............................. 306

22.9.3 ngInclude 动画........................ 308

22.9.4 ngSwitch 动画.......................... 310

22.9.5 ngIf 动画.................................. 312

22.9.6 ngClass 动画............................ 314

22.9.7 ngShow/ngHide 动画................ 316

22.10 创建自定义动画.................................. 318

22.10.1 addClass()........................... 319

22.10.2 removeClass()..................... 320

22.10.3 enter()................................. 321

22.10.4 leave()................................. 322

22.10.5 move()................................... 323

22.11 与第三方库集成.................................. 324

22.11.1 Animate.css........................... 324

22.11.2 TweenMax/TweenLite .......... 324

第23 章 digest 循环和$apply...................... 326

23.1 $watch 列表............................................ 326

23.2 脏值检查................................................ 327

23.3 $watch .................................................... 328

23.4 $watchCollection................................. 330

23.5 页面中的$digest 循环.......................... 330

23.6 $evalAsync 列表.................................... 331

23.7 $apply .................................................... 332

23.8 何时使用$apply..................................... 332

第24 章 揭秘Angular .................................. 334

24.1 视图的工作原理.................................... 335

24.1.1 编译阶段.................................. 335

24.1.2 运行时...................................... 336

第25 章 AngularJS 精华扩展.................... 337

25.1 AngularUI ............................................... 337

25.2 安装........................................................ 337

25.3 ui-router............................................... 337

25.3.1 安装.......................................... 337

25.3.2 事件.......................................... 342

25.3.3 $stateParams........................... 343

25.3.4 $urlRouterProvider ............... 344

图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权

目 录 5

25.3.5 创建一个导航程序...................345

25.4 ui-utils.................................................346

25.4.1 安装...........................................347

25.4.2 mask...........................................347

25.4.3 ui-event ...................................347

25.4.4 ui-format .................................348

第26 章 移动应用..........................................350

26.1 响应式Web 应用....................................350

26.2 交互.........................................................350

26.2.1 安装...........................................350

26.2.2 ngTouch .....................................351

26.2.3 $swipe 服务..............................352

26.2.4 angular-gestures 和多点

触控手势...................................353

26.2.5 安装angular-gestures...........354

26.2.6 使用angular-gestures...........354

26.3 Cordova 中的原生应用程序...................355

26.4 Cordova 入门..........................................356

26.4.1 Cordova 开发流程.....................359

26.4.2 平台...........................................359

26.4.3 插件...........................................359

26.4.4 构建...........................................360

26.4.5 模拟和运行...............................360

26.4.6 开发阶段...................................360

26.4.7 Anguar 中的Cordova 服务.......361

26.5 引入Angular...........................................362

26.6 使用Yeoman 构建..................................363

26.6.1 修改Yeoman 以便使用

Cordova .....................................364

26.6.2 装配Yeoman 构建....................365

26.6.3 构建移动部分...........................365

26.6.4 处理引导程序...........................367

第27 章 本地化...............................................369

27.1 angular-translate................................369

27.2 安装.........................................................369

27.3 教你的应用一种新语言.........................370

27.4 多语言支持.............................................371

27.5 运行时切换语言.....................................372

27.6 加载语言.................................................373

27.7 angular-gettext ...................................374

27.8 安装.........................................................374

27.9 用法.........................................................375

27.10 字符串提取...........................................375

27.11 翻译字符串...........................................377

27.12 编译新语言...........................................378

27.13 改变语言...............................................379

第28 章 缓存................................................... 381

28.1 什么是缓存.............................................381

28.2 Angular 中的缓存...................................381

28.2.1 $cacheFactory 简介.................381

28.2.2 缓存对象...................................382

28.3 $http 中的缓存......................................382

28.3.1 默认的$http 缓存....................382

28.3.2 自定义缓存...............................383

28.4 为$http 设置默认缓存..........................384

第29 章 安全性............................................... 385

29.1 严格的上下文转义:$sce 服务............385

29.2 URL 白名单............................................387

29.3 URL 黑名单............................................388

29.4 $sce API .................................................388

29.4.1 getTrusted ...............................388

29.4.2 parse.........................................389

29.4.3 trustAs .....................................389

29.4.4 isEnabled .................................390

29.5 配置$sce.................................................390

29.6 可信赖的上下文类型.............................390

第30 章 AngularJS 和IE 浏览器............... 391

30.1 Ajax 缓存................................................393

30.2 AngularJS 中的SEO...............................393

30.3 使Angular 应用可被索引......................393

30.4 服务端.....................................................393

30.4.1 hashbang 语法...........................394

30.4.2 HTML5 路由模式.....................394

30.5 服务端处理SEO 的选项........................394

30.5.1 使用Node/Express 中间件.......395

30.5.2 使用Apache 重写URL ............395

30.5.3 使用Ngnix 代理URL ..............396

30.6 获取快照.................................................396

30.7 使用Zombie.js 获取HTML 快照..........397

30.8 使用grunt-html-snapshot...................398

30.9 Prerender.io .............................................399

30.10 <noscript>方法...................................400

第31 章 构建Angular Chrome 应用........ 401

31.1 了解Chrome 应用..................................401

31.1.1 manifest.json..............................401

31.1.2 背景脚本...................................401

图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权

6 目 录

31.1.3 视图.......................................... 401

31.2 构建你的Chrome 应用.......................... 402

31.3 搭建框架................................................ 402

31.4 manifest.json ........................................... 403

31.5 tab.html ................................................... 404

31.6 在Chrome 中加载应用.......................... 405

31.7 主模块.................................................... 406

31.8 构建主页................................................ 406

31.9 使用Wundergroud 的天气API ............. 408

31.10 设置界面.............................................. 411

31.11 实现用户服务...................................... 413

31.12 城市自动填充/自动完成...................... 415

31.13 添加时区支持...................................... 418

第32 章 优化Angular 应用......................... 421

32.1 优化什么................................................ 421

32.2 优化$digest 循环.................................. 421

32.3 优化ng-repeat...................................... 423

32.4 优化$digest 调用.................................. 423

32.5 优化$watch 函数.................................... 424

32.5.1 bindonce.................................... 425

32.5.2 $watch 函数的自动优化.......... 427

32.6 优化过滤器............................................ 427

32.6.1 不变的数据............................... 427

32.6.2 过滤后的数据........................... 427

32.7 页面加载优化技巧................................. 428

32.7.1 压缩.......................................... 429

32.7.2 利用$templateCache ............... 429

第33 章 调试AngularJS............................. 430

33.1 从DOM 中调试..................................... 430

33.1.1 scope()..................................... 431

33.1.2 controller()........................... 431

33.1.3 injector()............................... 431

33.1.4 inheritedData()..................... 431

33.2 调试器.................................................... 431

33.3 Angular Batarang.................................... 432

33.3.1 安装Batarang ........................... 432

33.3.2 检查模型................................... 433

33.3.3 检查性能................................... 433

33.3.4 检查依赖图表........................... 434

33.3.5 可视化应用............................... 434

第34 章 下一步.............................................. 435

34.1 jqLite 和jQuery...................................... 435

34.2 了解基本工具........................................ 436

34.3 Grunt....................................................... 436

34.4 grunt-angular-templates ................... 439

34.4.1 安装.......................................... 439

34.4.2 用法.......................................... 440

34.4.3 可用选项.................................. 440

34.4.4 用法.......................................... 442

34.5 Lineman .................................................. 443

34.6 Bower...................................................... 445

34.6.1 安装.......................................... 445

34.6.2 Bower 简介............................... 445

34.6.3 配置Bower............................... 446

34.6.4 搜索程序包............................... 447

34.6.5 安装程序包............................... 447

34.6.6 使用程序包............................... 447

34.6.7 移除程序包............................... 448

34.7 Yeoman................................................... 448

34.7.1 安装.......................................... 448

34.7.2 用法.......................................... 449

34.7.3 创建路由.................................. 451

34.7.4 创建控制器............................... 451

34.7.5 创建自定义指令....................... 451

34.7.6 创建自定义过滤器................... 451

34.7.7 创建视图.................................. 451

34.7.8 创建服务.................................. 452

34.7.9 创建装饰器............................... 452

34.8 配置Angular 生成器.............................. 452

34.8.1 CoffeeScript .............................. 452

34.8.2 安全压缩.................................. 452

34.8.3 跳过索引.................................. 452

34.9 测试应用................................................ 452

34.10 打包应用.............................................. 453

34.11 打包模板.............................................. 453

第35 章 总结.................................................. 456

写一个Hello World应用是开始学习AngularJS的最基本途径,让我们从一段简单得不能再简单

的HTML开始吧。

随着学习的深入,我们会逐渐深入到AngularJS的内部原理中。现在,让我们先来写一个Hello

World应用。

<!DOCTYPE html>

<html ng-app>

<head>

<title>Simple app</title>

<script

src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.js">

</script>

</head>

<body>

<input ng-model="name" type="text" placeholder="Your name">

<h1>Hello {{ name }}</h1>

</body>

</html>

图2-1 Hello World

虽然这个例子不怎么有趣,但它展示了AngularJS最基本也最令人印象深刻的功能之一:数

据绑定。

第2 章

图灵社区会员 鸟月月(dearzpfree@hotmail.com) 专享 尊重版权

2.1 AngularJS 中的数据绑定 5

请注意,在本章的示例代码中为了方便展示第一个核心概念,我们并没有用最

佳方式编写控制器。这也是本书唯一一处我们不鼓励将示例代码应用在实际生

产中,而只作为学习范例的地方。

2.1 AngularJS 中的数据绑定

在Rails等传统Web框架中,控制器将多个模型中的数据和模板组合在一起形成视图,并将其

提供给用户,这个组合过程会产生一个单向视图。如果没有创建任何自定义的JavaScript组件,视

图只会体现它渲染时模型暴露出的数据。在写这篇文章时,已经出现了好几个可以在视图和模型

之间自动进行数据绑定的框架。

AngularJS则采用了完全不同的解决方案。它创建实时模板来代替视图,而不是将数据合并

进模板之后更新DOM。任何一个独立视图组件中的值都是动态替换的。这个功能可以说是

AngularJS中最重要的功能之一,也是让我们只用10行代码,并且在没有任何JavaScirpt的情况下

就可以写出Hello World的关键。

要实现这个功能,只要在HTML页面中引用angular.js,并在某个DOM元素上明确设置

ng-app属性即可。ng-app属性声明所有被其包含的内容都属于这个AngularJS应用,这也是我们

可以在Web应用中嵌套AngularJS应用的原因。只有被具有ng-app属性的DOM元素包含的元素才

会受AngularJS影响。

视图中的插值会在计算一个或多个变量时被动态替换,替换结果是字符串中的

插值被变量的值替代。

例如,如果有一个叫做name的变量,它的值是“Ari”,那么视图中的"Hello

{{ name }}"字符串会被替换成“Hello Ari”。

自动数据绑定使我们可以将视图理解为模型状态的映射。当客户端的数据模型发生变化时,

视图就能反映出这些变化,并且不需要写任何自定义的代码,它就可以工作。

在MVC(Model View Controller,模型视图控制器)的世界里,控制器可以不必担心会牵

扯到渲染视图的工作。这样我们就不必再担心如何分离视图和控制器逻辑,并且也可以使测试变

得既简单又令人愉悦。

MVC是一种软件架构设计模式,它将表现从用户交互中分离出来。通常来讲,

模型中包含应用的数据和与数据进行交互的方法,视图将数据呈献给用户,而

控制器则是

↓ 查看全文

《angularjs权威教程》pdf文字版免费下载由懒人建站收集整理,您可以自由传播,请主动带上本文链接

懒人建站就是免费分享,觉得有用就多来支持一下,没有能帮到您,懒人也只能表示遗憾,希望有一天能帮到您。

《angularjs权威教程》pdf文字版免费下载-最新评论