AngularJS高級程式設計
內容描述
<內容簡介>
用AngularJS編寫高級應用的完整指南這是一個令Web開發人員激動的時代,掌握JavaScript語言技能的人才變得炙手可熱。AngularJS迅速蛻變為領先的新一代客戶端Web框架;可供個人、小團隊和大公司構建和測試基於瀏覽器的、極其複雜的應用。《AngularJS高級編程》內容廣泛,涵蓋構建首個AngularJS應用乃至內嵌、構建系統和自動執行集成測試等高級主題。如果你已經熟悉基本編程知識,並希望編寫在瀏覽器UI中顯示複雜數據的Web應用,或快捷高效地模擬本地應用的移動Web應用,那麼本書將是值得你反復研讀的必備指南。主要內容◆ 從頭構建一個簡單應用www.stockdog.io,在便捷動手練習的引導下講解基本構建塊◆ 詳細講解AngularJS中將數據綁定到模板的高級方式◆ 講解AngularJS架構,並演示各個組成部分是如何協作的◆ 詳述服務、工廠和提供者之間的差異,並說明每種技術的使用時機◆ 介紹可供測試和調試AngularJS應用的技術◆ 演示許多可與AngularJS一起使用的流行工具,包括Yeoman 、RequireJS、Browserify、Mocha、Jasmine、Bootstrap、Ionic、Moment和Mongoose
<章節目錄>
第1章構建簡單的AngularJS應用1 1.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.2 Watchlist服務10 1.4.3監視列錶面板指令12 1.5步驟3:配置客戶端路由18 1.5.1 Angular ngRoute模塊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:集成Yahoo Finance 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.2 Bower 56 2.2.1開始使用Bower 56 2.2.2搜索包56 2.2.3安裝包56 2.2.4版本化依賴57 2.3 Grunt 57 2.3.1開始使用Grunt 57 2.3.2安裝插件59 2.3. 3目錄結構59 2.3.4 Gruntfile 60 2.3.5配置任務和目標61 2.3.6創建自定義任務66 2.4 Gulp 69 2.4.1開始使用Gulp 70 2.4.2安裝插件70 2.4.3 Gulpfile 70 2.4.4創建任務71 2.4.5參數和異步行為75 2.4.6 Gulp、Grunt和Make 79 2.5 Yeoman 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.1 RequireJS 114 3.5.2 Browserify 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.3 AngularJS作用域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.2 ngInclude和性能184 6.1.3使用腳本標記包含模板185 6.1.4 $templateCache服務187 6.1.5下一步:模板和數據綁定188 6.2第2部分: $location服務190 6.2.1 URL中包含的信息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.4 SPA中的導航199 6.3.5搜索引擎和SPA 200 6.3 .6在服務器上設置Prerender 201 6.3.7 Google AJAX Crawling規範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.1 factory()函數214 7.2.2 service()函數216 7.2.3 provider()函數220 7.3服務的常見用例224 7.3.1構建$user服務224 7.3.2構建$stockPrice服務226 7.4使用內置提供者227 7.4.1自定義插值分隔符228 7.4.2使用$pileProvider的白名單鏈接229 7.4.3使用$rootScopeProvider的全局表達式屬性231 7.5小結233 第8章服務器通信235 8.1將要學習的內容235 8.2約定簡介236 8.3發起請求的服務237 8.3.1 $ 238 8.3 .2 $resource服務250 8.4使用Twitter的REST API 253 8.5使用StrongLoop LoopBack搭建REST API 255 8.6在AngularJS中使用Web套接字261 8.7在AngularJS中使用Firebase 264 8.8小結265 第9章測試和調試AngularJS應用267 9.1 AngularJS測試哲學267 9.2 AngualrJS中的單元測試271 9.2.1 Mocha測試框架271 9.2.2使用Karma在瀏覽器中執行單元測試275 9.2.3使用Sauce在雲中執行瀏覽器測試278 9.2.4評估單元測試選項282 9.3 DOM集成測試283 9.3.1 $Backend指南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.1 debug模塊300 9.4.2使用Chrome DevTools進行調試302 9.5小結305 第10章繼續前行307 10.1使用Angular—UI Bootstrap 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和Android SDK 317 10.2.2在Ionic應用中使用AngularJS 318 10.2.3為生產使用Yeoman工作流和構建321 10.3集成開源和AngularJS 322 10.3.1使用Moment操作日期和時區322 10.3.2使用Mongoose實現模式驗證和深度對象326 10.4 AngularJS和ECMAScript 6333 10.5小結334 附錄資源337