Angular 5 高級編程, 2/e Angular 5 高级编程(第2版)

Adam Freeman

  • 出版商: 清華大學
  • 出版日期: 2018-01-20
  • 定價: $768
  • 售價: 8.5$653
  • 語言: 簡體中文
  • 頁數: 741
  • 裝訂: 平裝
  • ISBN: 7302491178
  • ISBN-13: 9787302491170
  • 相關分類: Angular
  • 此書翻譯自: Pro Angular
  • 無法訂購

買這商品的人也買了...

商品描述

海報:

作者簡介

Adam Freeman是一位經驗豐富的IT專業人士,曾在一系列公司擔任過高級職位,曾經擔任一家全球銀行的技術官和運營官。退休之後,他熱衷於寫作和長跑。

目錄大綱

第1章準備工作1 
1.1需要了解什麼1 
1.2本書結構1 
1.2.1第1部分:準備2 
1.2.2第2部分:使用Angular 2 
1.2.3第3部分:Angular的高級功能2 
1.3大量示例2 
1.4獲取示例代碼4 
1.5如何搭建開發環境4 
1.6聯繫作者4 
1.7本章小結4 

第2章第一個Angular應用程序5 
2.1準備開發環境5 
2.1.1安裝Node.js 5 
2.1.2安裝angular- cli包6 
2.1.3安裝Git 6 
2.1.4安裝編輯器7 
2.1.5安裝瀏覽器7 
2.2創建並準備項目8 
2.2.1創建項目8 
2.2.2創建包文件8 
2.2.3啟動服務器10 
2.2. 4編輯HTML文件11 
2.3向項目中添加Angular功能13 
2.3.1準備HTML文件14 
2.3.2創建數據模型14 
2.3.3創建模板17 
2.3.4創建組件17 
2.3.5將應用程序組合起來19
2.4向示例應用程序中添加功能21 
2.4.1添加待辦事項表格21 
2.4.2創建雙向數據綁定25 
2.4.3添加待辦事項27 
2.5本章小結29 

第3章創建項目31 
3.1準備創建項目31 
3.2創建項目32 
3.2.1創建項目的Angular部分33 
3.2.2創建項目的ASP.NET Core MVC部分34 
3.3配置項目35 
3.3.1準備項目(Visual Studio) 35 
3.3.2創建和編輯配置文件36 
3.3 .3啟用日誌消息39 
3.3.4更新Bootstrap包39 
3.3.5移除文件40 
3.3.6更新控制器、佈局和視圖40 
3.4運行項目42 
3.5理解合併項目和工具44 
3.5.1理解項目結構44 
3.5 .2理解工具集成44 
3.5.3理解項目變更系統45 
3.5.3檢測TypeScript錯誤48 
3.6本章小結50 

第4章HTML和CSS入門51 
4.1準備示例項目51 
4.2理解HTML 53 
4.2.1理解空元素54 
4.2 .2理解屬性54
4.2.3應用無值屬性54 
4.2.4在屬性中引用字面量55 
4.2.5理解元素內容55 
4.2.6理解文檔結構55 
4.3理解Bootstrap 57 
4.3.1應用基本的Bootstrap類57 
4.3.2使用Bootstrap樣式化表格61 
4.3.3使用Bootstrap創建表單62 
4.3.4使用Bootstrap創建網格63 
4.4本章小結68 

第5章JavaScript與TypeScript:
第1部分69 
5.1準備示例項目70 
5.1.1創建HTML和JavaScript文件71 
5.1.2配置TypeScript編譯器72 
5.1.3運行示例項目72 
5.2理解script元素73 
5.2.1使用JavaScript模塊加載器73 
5.2.2理解基本工作流74 
5.3使用語句75 
5.4定義和使用函數75 
5.4.1定義帶參數的函數77 
5.4.2定義返回結果的函數79 
5.4.3將函數用作其他函數的實參79 
5.5使用變量和類型80 
5.6使用JavaScript操作符84 
5.6.1使用條件語句84
5.6.2相等操作符和恆等操作符85 
5.6.3顯式類型轉換86 
5.7處理數組87 
5.7.1使用數組字面量88 
5.7.2數組內容的讀取和修改88 
5.7.3遍歷數組內容89 
5.7. 4使用內置數組方法89 
5.8本章小結91 

第6章JavaScript與TypeScript:
第2部分93 
6.1準備示例項目93 
6.2使用對象94 
6.2.1使用對象字面量95 
6.2.2將函數用作方法95 
6.2.3定義類96 
6.3處理JavaScript模塊99 
6.3.1創建模塊99 
6.3.2從JavaScript模塊導入100 
6.4有用的TypeScript特性103 
6.4.1使用類型註解103 
6.4.2使用元組109 
6.4.3使用可索引類型109 
6.4.4使用訪問修飾符110 
6.5本章小結111 

第7章SportsStore:一個真實的應用程序113 
7.1準備項目113 
7.1.1準備項目114 
7.1.2創建文件夾結構114 
7.1.3安裝額外的NPM軟件包114
7.1.4準備RESTful Web服務116 
7.1.5準備HTML文件118 
7.1.6運行示例應用程序119 
7.1.7啟動RESTful Web服務119 
7.2準備Angular項目功能120 
7.2.1更新根組件120 
7.2.2更新根模塊121 
7.2.3檢查引導文件121 
7.3啟動數據模型122 
7.3.1創建模型類122 
7.3.2創建虛擬數據源123 
7.3.3創建模型存儲庫124 
7.3.4創建功能模塊126 
7.4啟動商店126 
7.4.1創建Store組件和模板127 
7.4.2創建商店功能模塊128 
7.4.3更新根組件和根模塊129 
7.5添加商店功能:產品詳情130 
7.5.1顯示產品詳情130 
7.5.2添加類別選擇132 
7.5.3添加產品分頁功能133 
7.5.4創建自定義指令137 
7.6本章小結140 

第8章SportsStore:訂單和結賬141 
8.1準備示例應用程序141 
8.2創建購物車141 
8.2.1創建購物車模型141 
8.2.2創建購物車概覽組件143
8.2.3將購物車集成到商店中145 
8.3添加URL路由148 
8.3.1創建購物車詳情和結賬組件148 
8.3.2創建和應用路由配置150 
8.3.3應用程序導航151 
8.3.4守衛路由154 
8.4完成購物車詳情功能156 
8.5處理訂單159 
8.5.1擴展模型159 
8.5.2收集訂單詳情161 
8.6使用RESTful Web服務165 
8.7本章小結168 

第9章SportsStore:管理169 
9.1準備示例應用程序169 
9.1.1創建模塊169 
9.1.2配置URL路由系統172 
9.1.3導航到管理URL 173 
9.2實現身份驗證175 
9.2.1理解身份驗證系統175 
9.2.2擴展數據源176 
9.2.3創建身份驗證服務177 
9.2.4啟用身份驗證178 
9.3擴展數據源和存儲庫181 
9.4創建管理功能結構185 
9.4.1創建佔位符組件185 
9.4.2準備常用內容和功能模塊186 
9.4.3實現產品功能189 
9.4.4實現訂單功能193
9.5本章小結195 

第10章SportsStore:部署197 
10.1準備部署應用程序197 
10.2將SportsStore應用程序容器化197 
10.2.1安裝Docker 197 
10.2.2準備應用程序198 
10.2.3創建Docker容器199 
10.2.4運行應用程序200 
10.3本章小結201 

第11章創建Angular項目203 
11.1準備TypeScript Angular開發項目203 
11.1.1創建項目文件夾結構204 
11.1.2創建和提供HTML文檔204 
11.1.3準備項目配置205 
11.1.4添加包205 
11.1.5啟動監視進程213 
11.2使用TypeScript開始
Angular開發214 
11.2.1創建數據模型216 
11.2.2創建模板和根組件219 
11.2.3創建Angular模塊220 
11.2.4引導應用程序221 
11.2.5配置JavaScript模塊加載器222 
11.2.6更新HTML文檔226 
11.2.7運行應用程序227 
11.3利用@angular/cli工具創建項目229
11.3.1創建示例項目229 
11.3.2創建包文件230 
11.3.3啟動服務器231 
11.4本章小結231 

第12章使用數據綁定233 
12.1準備示例項目234 
12.2理解單向數據綁定234 
12.2.1理解綁定目標236 
12.2.2理解表達式237 
12.2.3理解括號238 
12.2.4理解宿主元素239 
12.3使用標準屬性和屬性綁定239 
12.3.1使用標準屬性綁定239 
12.3.2使用字符串插入綁定241 
12.3.3使用元素屬性綁定242 
12.4設置CSS類和样式244 
12.4.1使用類綁定244 
12.4.2使用樣式綁定248 
12.5更新應用程序的數據252 
12.6本章小結254 

第13章使用內置指令255 
13.1準備示例項目256 
13.2使用內置指令257 
13.2.1使用ngIf指令258 
13.2.2使用ngSwitch指令260 
13.2.3使用ngFor指令262 
13.2.4使用ngTemplateOutlet指令271 
13.3理解單向數據綁定的限制273
13.3.1使用冪等表達式274 
13.3.2理解表達式上下文276 
13.4本章小結279 

第14章使用事件和表單281 
14.1準備示例項目282 
14.1.1添加表單模塊282 
14.1.2準備組件和模板283 
14.2使用事件綁定285 
14.2.1理解動態定義的屬性286 
14.2.2使用事件數據288 
14.2.3使用模板引用變量290 
14.3使用雙向數據綁定292 
14.4處理表單295 
14.4.1向示例應用程序添加表單295 
14.4.2添加表單數據驗證297 
14.4.3驗證整個表單307 
14.5使用基於模型的表單313 
14.5.1啟用基於模型的表單功能313 
14.5.2定義表單模型類314 
14.5.3使用模型進行驗證317 
14.5. 4根據模型生成元素321 
14.6創建自定義表單驗證器322 
14.7本章小結325 

第15章創建屬性指令327 
15.1準備示例項目328 
15.2創建簡單的屬性指令330 
15.3在指令中訪問應用程序數據333 
15.3.1讀取宿主元素屬性333
15.3.2創建數據綁定輸入屬性335 
15.3.3響應輸入屬性變化338 
15.4創建自定義事件340 
15.5創建宿主元素綁定343 
15.6在宿主元素上創建雙向綁定344 
15.7導出指令用於模板變量348 
15.8本章小結350 

第16章創建結構型指令351 
16.1準備示例項目352 
16.2創建簡單的結構型指令353 
16.2.1實現結構型指令類354 
16.2.2啟用結構型指令356 
16.2.3使用結構型指令的簡潔語法358 
16.3創建迭代結構型指令359 
16.3.1提供額外的上下文數據362 
16.3.2使用簡潔的結構語法363 
16.3.3處理屬性級數據變更364 
16.3.4處理集合級數據變更365 
16.4查詢宿主元素內容376 
16.4.1查詢多個子內容379 
16.4.2接收查詢變更通知381 
16.5本章小結382 

第17章理解組件385 
17.1準備示例項目386 
17.2使用組件來組織應用程序386 
17.2.1創建新組件388 
17.2.2定義模板391
17.2.3完成組件的重組400 
17.3使用組件樣式401 
17.3.1定義外部組件樣式402 
17.3.2使用高級樣式特性403 
17.4查詢模板內容410 
17.5本章小結412 

第18章使用和創建管道413 
18.1準備示例項目414 
18.2理解管道418 
18.3創建一個自定義管道419 
18.3.1註冊自定義管道421 
18.3.2應用自定義管道421 
18.3.3組合管道423 
18.3.4創建非純管道423 
18.4使用內置管道427 
18.4.1格式化數值428 
18.4.2格式化貨幣值431 
18.4.3格式化百分比433 
18.4.4格式化日期435 
18.4.5改變字符串大小寫438 
18.4.6將數據序列化為JSON數據439 
18.4.7將數據數組切片440 
18.5小結442 

第19章使用服務443 
19.1準備示例項目444 
19.2理解對象分發問題445 
19.2.1問題的提出445 
19.2.2利用依賴注入將對像作為服務分發450
19.2.3在其他構造塊中聲明依賴455 
19.3理解測試隔離問題461 
19.4完成服務的融入465 
19.4.1更新根組件和模板465 
19.4.2更新子組件466 
19.5小結468 

第20章使用服務提供程序469 
20.1準備示例項目470 
20.2使用服務提供程序471 
20.2.1使用類提供程序474 
20.2.2使用值提供程序481 
20.2.3使用工廠提供程序483 
20.2.4使用已有服務提供程序486 
20.3使用本地提供程序487 
20.3.1理解單個服務對象的限制488 
20.3.2在一條指令中創建本地提供程序489 
20.3.3在組件中創建本地提供程序491 
20.3.4控制依賴解析495 
20.4小結498 

第21章使用和創建模塊499 
21.1準備示例項目499 
21.2理解根模塊501 
21.2.1理解imports屬性504 
21.2.2理解declarations屬性504 
21.2.3理解providers屬性504 
21.2.4理解bootstrap屬性504 
21.3創建功能模塊507
21.3.1創建模型模塊508 
21.3.2創建實用工具功能模塊512 
21.3.3用組件創建一個功能模塊518 
21.4小結521 

第22章創建示例項目523 
22.1啟動示例項目523 
22.2添加和配置包524 
22.2.1配置TypeScript 525 
22.2.2配置HTTP開發服務器525 
22.3創建模型模塊526 
22.3.1創建產品數據類型526 
22.3.2創建數據源和存儲庫526 
22.3.3完成模型模塊528 
22.4創建核心模塊528 
22.4.1創建共享狀態服務528 
22.4.2創建表格組件529 
22.4.3創建表單組件531 
22.4.4完成核心模塊533 
22.5創建消息模塊533 
22.5.1創建消息模型和服務533 
22.5.2創建組件和模板534 
22.5.3完成消息模塊535 
22.6完成項目535 
22.6.1創建Angular引導程序536 
22.6.2創建HTML文檔536 
22.7運行示例項目537 
22.8小結538

第23章使用Reactive Extensions 539 
23.1準備示例項目540 
23.2理解問題540 
23.3使用Reactive Extensions解決問題543 
23.3.1理解Observable 544 
23.3.2理解Observer 545 
23.3.3理解Subject 547 
23.4使用async管道548 
23.5擴展應用程序功能模塊551 
23.6基礎之上更進一步553 
23.6.1過濾事件554 
23.6.2轉換事件555 
23.6.3只接收不同的事件558 
23.6.4獲取和忽略事件560 
23.7小結561 

第24章生成異步HTTP請求563 
24.1準備示例項目564 
24.1.1配置模型功能模塊565 
24.1.2更新表單組件566 
24.1.3運行示例項目567 
24.2理解RESTful Web服務568 
24.3替換靜態數據源569 
24.3.1創建新的數據源服務569 
24.3 .2配置數據源572 
24.3.3使用REST數據源572 
24.3.4保存和刪除數據574 
24.4加強HTTP請求576
24.5生成跨域請求578 
24.6配置請求頭581 
24.7處理錯誤584 
24.7.1生成用戶可以使用的消息585 
24.7.2處理錯誤586 
24.8小結588 

第25章路由和導航:第1部分589 
25.1準備示例項目590 
25.2開始學習路由593 
25.2.1創建路由配置594 
25.2.2創建路由組件595 
25.2.3更新根模塊596 
25.2.4完成配置596 
25.2.5添加導航鏈接597 
25.2.6理解路由的效果600 
25.3完成路由實現602 
25.3.1在組件中處理路由變化602 
25.3.2使用路由參數605 
25.3.3在代碼中導航611 
25.3.4接收導航事件614 
25.3.5刪除事件綁定和支持代碼615 
25.4小結618 

第26章路由與導航:第2部分619 
26.1準備示例項目619 
26.2使用通配符和重定向626 
26.2.1在路由中使用通配符626 
26.2.2在路由中使用重定向628 
26.3在組件內部導航630
26.3.1響應正在發生的路由變化631 
26.3.2為活動路由設置不同樣式的鏈接633 
26.3.3修復All按鈕636 
26.4創建子路由637 
26.4.1創建子路由出口638 
26.4.2從子路由訪問參數640 
26.5小結644 

第27章路由與導航:第3部分645 
27.1準備示例項目645 
27.2守衛路由647 
27.2.1使用解析器推遲導航647 
27.2.2避免帶有守衛的導航654 
27.3動態加載功能模塊667 
27.3 .1創建一個簡單的功能模塊667 
27.3.2動態加載模塊669 
27.3.3守衛動態模塊672 
27.4指定命名出口675 
27.4.1創建附加的出口元素676 
27.4.2在使用多個出口的情況下導航678 
27.5小結680 

第28章使用動畫681 
28.1準備示例項目682 
28.1.1添加動畫polyfill 682 
28.1.2禁用HTTP延遲685 
28.1.3簡化表格模板和路由配置686 
28.2開始學習Angular動畫688 
28.2.1創建動畫688
28.2.2應用動畫691 
28.2.3測試動畫效果694 
28.3理解內置的動畫狀態696 
28.4理解元素過渡697 
28.4.1為內置狀態創建遷移697 
28.4.2控制動畫過渡699 
28.5理解動畫樣式分組704 
28.5.1在可重用分組中定義公共樣式704 
28.5.2使用元素變形705 
28.5.3應用CSS框架樣式707 
28.6理解動畫觸發器事件709 
28.7小結712 

第29章Angular單元測試713 
29.1準備示例項目714 
29.1.1添加測試包715 
29.1.2創建一個簡單的單元測試719 
29.1.3啟動工具719 
29.2使用Jasmine完成單元測試721 
29.3測試Angular組件722 
29.3.1使用TestBed類完成工作722 
29.3.2測試數據綁定726 
29.3. 3測試帶有外部模板的組件728 
29.3.4測試組件事件730 
29.3.5測試輸出屬性732 
29.3.6測試輸入屬性734 
29.3.7測試異步操作736 
29.4測試Angular指令739
29.5 小結740