第1章構建簡單的AngularJS應用 11.1構建目標 1
1.2學習內容 3
1.3步驟1:使用Yeoman搭建項目 4
1.3.1安裝Yeoman 4
1.3.2搭建項目 5
1.3.3瀏覽應用 6
1.3.4清理 7
1.4步驟2:創建監視列表 8
1.4.1應用模塊 8
1.4.2Watchlist服務 10
1.4.3監視列表面板指令 12
1.5步驟3:配置客戶端路由 18
1.5.1AngularngRoute模塊 18
1.5.2添加新的路由 19
1.5.3使用路由 20
1.5.4模板視圖 20
1.6步驟4:創建導航欄 22
1.6.1更新HTML 22
1.6.2創建MainCtrl 23
1.7步驟5:添加股票 25
1.7.1創建CompanyService 25
1.7.2創建AddStock模態框 26
1.7.3更新WatchlistService 27
1.7.4實現WatchlistCtrl 29
1.7.5修改監視列表視圖 30
1.8步驟6:集成YahooFinance 31
1.8.1創建QuoteService 31
1.8.2從控制臺調用服務 33
1.9步驟7:創建股票表格 34
1.9.1創建StkStockTable指令 34
1.9.2創建StkStockRow指令 35
1.9.3創建股票表格模板 37
1.9.4更新監視列表視圖 38
1.10步驟8:內聯表單編輯 39
1.10.1創建contenteditable指令 39
1.10.2更新StkStockTable模板 41
1.11步驟9:格式化貨幣 42
1.11.1創建StkSignColor指令 42
1.11.2更新StockTable模板 43
1.12步驟10:為價格變動添加動畫 44
1.12.1創建StkSignFade指令 44
1.12.2更新StockTable模板 46
1.13步驟11:創建儀表盤 47
1.13.1更新儀表盤控制器 47
1.13.2更新儀表盤視圖 50
1.14生產環境部署 52
1.15小結 53
第2章智能工作流和構建工具 55
2.1工具的作用 55
2.2Bower 56
2.2.1開始使用Bower 56
2.2.2搜索包 56
2.2.3安裝包 56
2.2.4版本化依賴 57
2.3Grunt 57
2.3.1開始使用Grunt 57
2.3.2安裝插件 59
2.3.3目錄結構 59
2.3.4Gruntfile 60
2.3.5配置任務和目標 61
2.3.6創建自定義任務 66
2.4Gulp 69
2.4.1開始使用Gulp 70
2.4.2安裝插件 70
2.4.3Gulpfile 70
2.4.4創建任務 71
2.4.5參數和異步行為 75
2.4.6Gulp、Grunt和Make 79
2.5Yeoman 81
2.5.1開始使用Yeoman 81
2.5.2搭建新的項目 81
2.5.3瀏覽插件和任務 82
2.5.4別名任務和工作流 87
2.5.5修改 88
2.5.6子生成器 88
2.5.7流行的生成器 88
2.6小結 89
第3章架構 91
3.1架構如此重要的原因 91
3.2控制器、服務和指令 92
3.2.1控制器 92
3.2.2服務 99
3.2.3指令 103
3.2.4小結 104
3.3使用模塊組織代碼 104
3.4目錄結構 109
3.4.1小型項目 110
3.4.2中型項目 110
3.4.3大型項目 112
3.5模塊加載器 114
3.5.1RequireJS 114
3.5.2Browserify 117
3.6構造用戶身份驗證的最佳實踐 121
3.6.1服務:從服務器加載數據和保存數據 122
3.6.2控制器:向HTML公開API 122
3.6.3指令:與DOM進行交互 123
3.7小結 124
第4章數據綁定 125
4.1數據綁定 125
4.2數據綁定的作用 128
4.3AngularJS作用域 130
4.3.1作用域繼承 131
4.3.2性能考慮 136
4.3.3過濾器和數據綁定 139
4.4小結 149
第5章指令 151
5.1指令 151
5.1.1了解指令 151
5.1.2指令的帕累托分布 153
5.2深入理解指令 161
5.2.1使用模板的指令組合 161
5.2.2為指令創建不同的作用域 163
5.2.3限制和替換設置 170
5.2.4繼續前行 173
5.3在運行時改變指令模板 173
5.3.1內嵌 173
5.3.2編譯設置或者編譯與鏈接 177
5.4小結 178
第6章模板、位置和路由 179
6.1第1部分:模板 181
6.1.1在模板中使用ngInclude指令 182
6.1.2ngInclude和性能 184
6.1.3使用腳本標記包含模板 185
6.1.4$templateCache服務 187
6.1.5下一步:模板和數據綁定 188
6.2第2部分:$location服務 190
6.2.1URL中包含的信息 190
6.2.2介紹$location 190
6.2.3使用$location追蹤頁面狀態 192
6.2.4下一步:路由和SPA 194
6.3第3部分:路由 194
6.3.1使用ngRoute模塊 195
6.3.2$routeProvider提供者 197
6.3.3$routeParams服務 199
6.3.4SPA中的導航 199
6.3.5搜索引擎和SPA 200
6.3.6在服務器上設置Prerender 201
6.3.7GoogleAJAXCrawling規范 202
6.3.8為搜索引擎配置AngularJS 203
6.3.9真正的搜索引擎集成 204
6.3.10介紹動畫 204
6.3.11實際的ngAnimate模塊 206
6.4小結 208
第7章服務、工廠和提供者 209
7.1依賴注入概述 210
7.1.1$injector服務 211
7.1.2函數注解 212
7.2構建自己的服務 213
7.2.1factory()函數 214
7.2.2service()函數 216
7.2.3provider()函數 220
7.3服務的常見用例 224
7.3.1構建$user服務 224
7.3.2構建$stockPrice服務 226
7.4使用內置提供者 227
7.4.1自定義插值分隔符 228
7.4.2使用$compileProvider的白名單鏈接 229
7.4.3使用$rootScopeProvider的全局表達式屬性 231
7.5小結 233
第8章服務器通信 235
8.1將要學習的內容 235
8.2約定簡介 236
8.3發起HTTP請求的服務 237
8.3.1$http 238
8.3.2$resource服務 250
8.4使用Twitter的RESTAPI 253
8.5使用StrongLoopLoopBack搭建RESTAPI 255
8.6在AngularJS中使用Web套接字 261
8.7在AngularJS中使用Firebase 264
8.8小結 265
第9章測試和調試AngularJS應用 267
9.1AngularJS測試哲學 267
9.2AngualrJS中的單元測試 271
9.2.1Mocha測試框架 271
9.2.2使用Karma在瀏覽器中執行單元測試 275
9.2.3使用Sauce在云中執行瀏覽器測試 278
9.2.4評估單元測試選項 282
9.3DOM集成測試 283
9.3.1$httpBackend指南 283
9.3.2將要測試的頁面 287
9.3.3使用ng-scenario執行DOM集成測試 288
9.3.4使用protractor執行DOM集成測試 294
9.3.5評估ng-scenario和protractor 300
9.4調試AngularJS應用 300
9.4.1debug模塊 300
9.4.2使用ChromeDevTools進行調試 302
9.5小結 305
第10章繼續前行 307
10.1使用Angular-UIBootstrap 308
10.1.1模態框 308
10.1.2日期選擇器 311
10.1.3時間選擇器 312
10.1.4自定義模板 313
10.2使用Ionic框架開發的混合移動應用 317
10.2.1設置Ionic、Cordova和AndroidSDK 317
10.2.2在Ionic應用中使用AngularJS 318
10.2.3為生產使用Yeoman工作流和構建 321
10.3集成開源JavaScript和AngularJS 322
10.3.1使用Moment操作日期和時區 322
10.3.2使用Mongoose實現模式驗證和深度對象 326
10.4AngularJS和ECMAScript6 333
10.5小結 334
附錄資源 337