注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)行業(yè)軟件及應(yīng)用精通AngularJS

精通AngularJS

精通AngularJS

定 價:¥79.00

作 者: Pawel Kozlowski,Peter Bacon Darwin 著; 李路,王永強,馬海波 譯
出版社: 華中科技大學(xué)出版社
叢編項:
標(biāo) 簽: 計算機/網(wǎng)絡(luò) 行業(yè)軟件及應(yīng)用

ISBN: 9787568003964 出版時間: 2014-10-01 包裝: 平裝
開本: 16開 頁數(shù): 368 字?jǐn)?shù):  

內(nèi)容簡介

  AngularJS誕生于Google,已用于開發(fā)多款Google產(chǎn)品。它是一套JavaScript前端框架,用于開發(fā)當(dāng)下流行的數(shù)據(jù)驅(qū)動的單頁面Web應(yīng)用。其核心特性是:MVC、模塊化、自動雙向數(shù)據(jù)綁定、語義化標(biāo)簽、依賴注入等?!毒ˋngularJS》深入淺出地講解了AngularJS的開發(fā)概念和原理,并通過豐富的開發(fā)實例向讀者展示了構(gòu)建復(fù)雜應(yīng)用的完整過程,包括學(xué)習(xí)使用AngularJS特有的基于DOM的模板系統(tǒng),實現(xiàn)復(fù)雜的后端通信,創(chuàng)建漂亮的表單,制作導(dǎo)航,使用依賴注入系統(tǒng),提高Web應(yīng)用的安全性,使用Jasmine開展單元測試,等等。

作者簡介

  PawelKozlowski有15年以上的Web開發(fā)經(jīng)驗,接觸過多種Web技術(shù)、語言和平臺。他精通客戶端和服務(wù)器端編程,并始終在尋找能提高生產(chǎn)率的工具和流程。Pawel是自由和開源軟件的堅定支持者,他在AngularJS社區(qū)非?;钴S,為AngularJS項目貢獻了大量的代碼。他也對AngularUI(AngularJS的配套框架)有所貢獻,并為AngularJS提供了TwitterBootstrap相關(guān)的指令(directives)。不寫代碼時,Pawel常在會議與活動上為AngularJS布道。PeterBaconDarwin已經(jīng)積累了20年以上的編程經(jīng)驗,他在.NET發(fā)布之前,就已經(jīng)用它工作了。他還對IronRuby的開發(fā)有所貢獻。他曾在Avanade和IMGROUP做IT顧問。退休后,自由開發(fā)和照顧孩子占用了他大部分的時光。Peter是AngularJS社區(qū)的名人。他最近加入了Google的AngularJS團隊。他還是AngularUI項目的創(chuàng)始成員。他曾在DevoxxUK和其他活動中發(fā)表過有關(guān)AngularJS的演講,并開辦過AngularJS的培訓(xùn)課程。他希望幫助企業(yè)更好地利用AngularJS。

圖書目錄

序 1
第 1 章 Angular之禪 7
11 邂逅AngularJS 7
熟悉框架 8
參與AngularJS項目 8
社區(qū) 8
在線學(xué)習(xí)資源 9
庫和擴展 9
工具 9
Batarang 10
Plunker與jsFiddle 10
IDE擴展和插件 10
12 AngularJS速成 10
Hello World——AngularJS 示例 10
雙向數(shù)據(jù)綁定 12
AngularJS中的MVC 模式 12
鳥瞰 13
深入作用域 15
視圖 21
模塊與依賴注入 26
模塊 26
協(xié)作對象 27
注冊服務(wù) 29
模塊的生命周期 33
模塊依賴 35
13 AngularJS和其他框架 38
jQuery 與 AngularJS 39
蘋果與橙子 40
窺視未來 41
14 總結(jié) 41
第 2 章 構(gòu)建與測試 43
21 介紹示例應(yīng)用 44
熟悉問題領(lǐng)域 44
技術(shù)棧 45
持久化存儲 46
MongoLab 46
服務(wù)器端環(huán)境 47
第三方JavaScript庫 48
Bootstrap CSS 48
22 構(gòu)建系統(tǒng) 48
構(gòu)建系統(tǒng)準(zhǔn)則 49
自動化所有事情 49
盡早報錯,清晰報錯 49
不同的工作流,不同的命令 50
構(gòu)建腳本同樣是代碼 50
工具 50
Gruntjs 51
測試庫與工具 51
Jasmine 51
Karma runner 52
23 組織文件和目錄 52
根目錄 52
進入源代碼目錄 54
AngularJS的特定文件 54
輕裝上路 56
深入測試目錄 57
文件命名約定 57
24 AngularJS模塊和文件 57
一個文件,一個模塊 58
模塊內(nèi)部 59
注冊provider的不同語法 59
聲明配置和運行塊的語法61
25 自動化測試 62
單元測試 63
剖析Jasmine測試 64
測試AngularJS對象 65
測試服務(wù) 65
測試控制器 67
Mock對象和異步代碼測試 68
端對端測試 70
日常工作流 71
Karma runner的提示與技巧 72
執(zhí)行測試子集 73
調(diào)試 73
26 小結(jié) 74
第 3章 與后端服務(wù)器通信 75
31 使用 $http 進行 XHR和JSONP 請求 75
熟悉數(shù)據(jù)模型和MongoLab URLs 76
$http API快速導(dǎo)覽 76
配置對象說明 77
轉(zhuǎn)換請求數(shù)據(jù) 78
處理HTTP響應(yīng) 79
轉(zhuǎn)換響應(yīng)數(shù)據(jù) 79
處理同源政策約束 79
利用JSONP克服同源政策約束 80
JSONP的限制 81
利用CORS克服同源政策約束 81
服務(wù)器端代理 83
32 promise API 與$q84
工作中的promise 和$q服務(wù) 85
學(xué)習(xí)$q服務(wù)的基礎(chǔ)知識 85
promise是第一類JavaScript對象 87
聚合回調(diào) 88
注冊回調(diào)和承諾的生命周期 88
異步動作的鏈?zhǔn)秸{(diào)用 89
關(guān)于$q的其他 91
AngularJS中的$q集成 93
33 promise API與 $http 94
34 與 RESTful 端點通信 95
$resource服務(wù) 95
構(gòu)造級與實例級方法 97
$resource 創(chuàng)建異步方法 100
$resource服務(wù)的限制 101
使用$http 自定義 REST 適配器 101
35 使用$http 的高級特性 104
截取響應(yīng) 104
36 測試與 $http 交互的代碼 106
37 小結(jié) 108
第 4 章 顯示與格式化數(shù)據(jù) 109
41 引用指令 109
42 顯示表達式的求值結(jié)果 110
插值指令 110
利用ngBind渲染模型值 111
AngularJS表達式中的 HTML內(nèi)容 111
43 條件化顯示 112
根據(jù)條件包含內(nèi)容塊 114
44 用 ngRepeat 指令渲染集合 114
熟悉ngRepeat 指令 115
特殊變量 115
迭代對象的屬性 116
ngRepeat 模式 117
列表和細節(jié) 117
改動表格、行和類 119
45 DOM 事件處理器 120
46 基于DOM 的模板 121
習(xí)慣煩瑣的語法 121
ngRepeat 和多個DOM 元素 122
不能在運行時修改的元素和屬性 123
自定義HTML元素與 IE 的老版本 124
47 使用過濾器處理模型變換 124
內(nèi)置過濾器 125
格式化過濾器 125
數(shù)組變換過濾器 125
編寫自定義過濾器——分頁示例 131
從JavaScript代碼中訪問過濾器 133
過濾器做什么與不做什么 134
過濾器與DOM操作 135
過濾器中代價高昂的數(shù)據(jù)變換 136
不穩(wěn)定的過濾器 136
48 摘要 138
第5章 創(chuàng)建高級表單 139
51 AngularJS表單與傳統(tǒng)表單的比較 139
介紹ngModel 指令 141
52 創(chuàng)建用戶信息表單 142
53 理解輸入指令 143
添加所需驗證 143
使用基于文本的輸入(text、textarea、e-mail、URL、number) 143
使用checkbox 輸入 144
使用radio 輸入 145
使用select 輸入 145
提供簡單的字符串options 145
利用ngOptions指令提供動態(tài)options 146
select指令與空的options 148
理解select和對象判等 149
選擇多個options 150
運用傳統(tǒng)的HTML hidden input 字段 150
嵌入來自服務(wù)器的值 150
提交傳統(tǒng)的HTML表單 151
54 詳解ngModel 數(shù)據(jù)綁定 151
理解ngModelController 151
在模型與視圖之間轉(zhuǎn)換值152
追蹤值是否變化 152
跟蹤input字段有效性153
55 校驗AngularJS 表單 153
理解ngFormController 153
運用name屬性將表單附加到作用域上 154
為用戶信息表單增加動態(tài)行為 154
顯示驗證錯誤 155
讓保存按鈕無效 156
使原生瀏覽器校驗無效 157
56 在其他表單中嵌套表單 157
將子表單作為可重用組件 157
57 重復(fù)子表單 158
驗證重復(fù)輸入 159
58 處理傳統(tǒng)的HTML表單提交 161
直接向服務(wù)器提交表單 161
處理表單提交事件 161
使用ngSubmit處理表單提交 162
使用ngClick處理表單提交 162
59 重置用戶信息表單 162
510 摘要 164
第 6 章 導(dǎo)航 165
61 單頁Web應(yīng)用的URL 166
HTML5之前的Hashbang URL 166
HTML5和history API 167
62 使用 $location服務(wù) 168
理解$location服務(wù)API與 URL的關(guān)系 169
哈希、頁面內(nèi)導(dǎo)航和 $anchorScroll 170
配置HTML5方式的URL 171
客戶端 171
服務(wù)端 171
使用$location 導(dǎo)航 172
根據(jù)路由構(gòu)建頁面 173
路由映射URL 174
定義路由時指定控制器 174
導(dǎo)航的不足 175
63 使用AngularJS自帶的路由服務(wù) 175
基礎(chǔ)路由定義 175
顯示匹配的路由內(nèi)容 176
匹配靈活的路由 177
定義默認(rèn)路由 178
訪問路由參數(shù) 178
多個控制器重用局部模板 178
路由改變時避免UI 抖動 179
取消路由更新 181
64 $route 服務(wù)的局限 182
一個路由只對應(yīng)頁面中的一個區(qū)域 183
使用ng-include處理多個UI區(qū)域 183
不支持嵌套路由 184
65 路由相關(guān)的模式及技巧 185
處理鏈接 185
創(chuàng)建可點擊的鏈接 186
兼容HTML5及hashbang模式 186
鏈接外部頁面 187
組織路由定義 187
將路由定義分離到多個模塊 188
減少路由定義的重復(fù)代碼 188
66 總結(jié) 189
第7 章 安全 191
71 提供服務(wù)端認(rèn)證和授權(quán) 192
處理未授權(quán)的訪問 192
提供服務(wù)端驗證API 192
72 保護局部模板 193
73 阻止惡意攻擊 194
防止cookie 監(jiān)聽、中間人攻擊 194
防止跨站腳本攻擊 195
確保AngularJS 表達式內(nèi)HTML 內(nèi)容的安全性 195
允許不安全的HTML 綁定 196
凈化HTML 196
防止JSON 注入攻擊 197
防止跨站請求偽造 198
74 客戶端安全 198
創(chuàng)建security 服務(wù) 199
顯示登錄表單 200
創(chuàng)建安全的菜單及工具欄 201
隱藏菜單項 201
創(chuàng)建登錄工具欄 202
75 支持客戶端認(rèn)證 203
處理認(rèn)證失敗 203
攔截響應(yīng) 204
HTTP響應(yīng)攔截器 204
創(chuàng)建 securityInterceptor 服務(wù) 205
創(chuàng)建securityRetryQueue 服務(wù) 207
通知安全服務(wù) 208
76 防止導(dǎo)航到安全受限路由 208
使用路由resolve函數(shù) 209
創(chuàng)建授權(quán)服務(wù) 210
77 總結(jié) 212
第 8 章 創(chuàng)建自定義指令 213
81 什么是 AngularJS 指令 214
理解內(nèi)置指令 214
在HTML標(biāo)簽中使用指令 215
82 指令的編譯生命周期 215
83 為指令編寫單元測試 217
84 定義指令 218
85 使用指令修改按鈕樣式 219
編寫一個按鈕指令 220
86 理解 AngularJS的組件指令 222
編寫一個分頁指令 222
為分頁指令編寫單元測試代碼 223
在指令中使用HTML模板 224
從父作用域中隔離指令 225
使用@插入屬性 226
使用=綁定數(shù)據(jù) 227
使用&提供一個回調(diào)表達式 227
實現(xiàn)分頁組件 228
為指令添加分頁跳轉(zhuǎn)回調(diào) 229
87 創(chuàng)建一個自定義驗證指令 230
需要其他指令的控制器 231
可選的依賴控制器 231
查找祖先元素的控制器 232
使用ngModelController 232
編寫自定義驗證指令的單元測試 233
實現(xiàn)自定義驗證指令 235
88 創(chuàng)建一個異步模型驗證器 235
模擬用戶服務(wù) 236
為異步驗證編寫測試代碼 237
實現(xiàn)異步驗證指令 238
89 包裝 jQueryUIdatepicker 指令 239
為包裝組件指令編寫測試代碼 240
實現(xiàn)jQuery datepicker 指令 242
810 小結(jié)243
第9章 創(chuàng)建自定義指令 245
91 使用嵌入 245
在指令中使用嵌入 245
在獨立作用域指令中使用嵌入 246
創(chuàng)建一個使用嵌入的提示指令 246
理解指令定義中的replace屬性 247
理解指令定義中的transclude屬性 248
使用ng-transclude插入嵌入元素 248
理解嵌入作用域 248
92 創(chuàng)建和使用嵌入函數(shù) 250
使用$compile 服務(wù)創(chuàng)建一個嵌入函數(shù) 251
在嵌入時克隆原始元素 251
在指令中訪問嵌入函數(shù) 252
通過編譯函數(shù)中的transcludeFn來獲取嵌入函數(shù) 252
通過$transclude在指令控制器中獲取嵌入函數(shù) 253
使用嵌入創(chuàng)建一個if 指令 253
在指令中使用priority屬性 255
93 理解指令控制器 256
為指令控制器注入特殊依賴 257
創(chuàng)建一個基于控制器的分頁指令 258
理解指令控制器和鏈接函數(shù)的區(qū)別 258
注入依賴 259
編譯過程 259
獲取其他控制器 260
獲取嵌入函數(shù) 261
創(chuàng)建一個手風(fēng)琴指令套件 261
在手風(fēng)琴組件中使用指令控制器 262
實現(xiàn)accordion指令 263
實現(xiàn)accordion-group指令 263
94 控制編譯過程 265
創(chuàng)建一個?eld指令 265
在指令中使用terminal屬性 267
使用$interpolate 服務(wù) 268
綁定驗證信息 269
動態(tài)加載模板 269
設(shè)置?eld指令的模板 270
95 小結(jié)271
第 10章 創(chuàng)建為全球用戶服務(wù)的AngularJS應(yīng)用 273
101 使用本地化的符號和設(shè)置 274
配置本地化設(shè)置模塊 274
使用已有的本地化設(shè)置 275
本地化設(shè)置和AngularJS過濾器 275
102 處理翻譯 277
翻譯AngularJS模板中的字符串 277
使用過濾器 278
使用指令 279
翻譯JavaScript代碼中的字符串 280
103 范式、秘訣和技巧 282
按照設(shè)定的地區(qū)初始化應(yīng)用 282
將地區(qū)標(biāo)識作為URL一部分帶來的問題 283
切換地區(qū) 284
針對日期、數(shù)字和貨幣的自定義過濾器 285
104 小結(jié) 287
第 11章 開發(fā)健壯的 AngularJS應(yīng)用 289
111 理解AngularJS的內(nèi)部運作機制 290
AngularJS不是基于字符串的模板引擎 290
響應(yīng)DOM事件更新模型 291
將模型變化傳播給DOM 291
同步DOM和模型變化 292
Scope$apply——打開AngularJS世界的鑰匙 293
深入$digest循環(huán) 295
整合 300
112 性能優(yōu)化——設(shè)置期望值、測量、調(diào)節(jié)、并重復(fù) 301
113 AngularJS應(yīng)用的性能優(yōu)化 303
優(yōu)化CPU使用率 303
加速$digest循環(huán) 303
盡可能少進入$digest循環(huán) 310
限制每個$digest循環(huán)的執(zhí)行輪數(shù) 312
優(yōu)化內(nèi)存占用 312
盡可能避免深度監(jiān)視 312
注意監(jiān)視表達式的大小 314
ng-repeat 指令 314
ng-repeat指令中對集合的監(jiān)視 314
瞬間綁定大量監(jiān)視 315
114 小結(jié) 315
第12章 打包和部署 AngularJS Web 應(yīng)用 317
121 提升網(wǎng)絡(luò)相關(guān)的性能 318
壓縮靜態(tài)資源 318
AngularJS如何判斷依賴關(guān)系 318
編寫會被安全壓縮的JavaScript代碼 319
數(shù)組風(fēng)格依賴注入的缺陷322
模板預(yù)加載 323
使用指令預(yù)加載模板 324
填充$templateCache服務(wù) 325
組合使用不同的預(yù)加載技術(shù) 327
122 優(yōu)化首頁 327
避免顯示未經(jīng)處理的模板 328
使用ng-cloak指令隱藏DOM元素 328
使用ng-bind指令隱藏表達式 329
引入AngularJS 和應(yīng)用腳本文件 330
引用腳本文件 330
AngularJS和異步模塊定義 331
123 瀏覽器支持 333
在Internet Explorer 中使用 333
124 小結(jié) 334
索引 337

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號