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

精通AngularJS

精通AngularJS

定 價:¥79.00

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

購買這本書可以去


ISBN: 9787568003964 出版時間: 2014-10-01 包裝: 平裝
開本: 16開 頁數: 368 字數:  

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號