Angular JS 實戰 Web开发技术丛书:AngularJS实战

陶國榮

  • 出版商: 機械工業
  • 出版日期: 2015-09-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 251
  • 裝訂: 平裝
  • ISBN: 7111514602
  • ISBN-13: 9787111514602
  • 相關分類: AngularJavaScript
  • 無法訂購

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

商品描述

內容簡介

近來,國內開發者對Angular的學習越來越熱,有一個非常重要的原因在於Angular框架與以往任何一套前端框架都不同,它的主旨是剋服HTML在構建應用上的不足,並補足這些應用的缺陷,如使用大括號語法進行數據綁定、使用DOM控制結構來實現對頁面元素的控制等一系列的方法,同時,Angular又是一個完整的端對端的解決方案,可以非常輕鬆地構建一個CRUD應用,並非常方便地實現測試、發布的功能。
本書通過理論與實踐相結合的方式,精選了92個簡潔、實用的實例,用由淺入深、逐層推進的方式,詳細地展示了Angular作為前端Web頁面開發新利器的方方面面。通過本書的學習,讀者不僅可以全面瞭解並掌握整個Angular框架的詳實內容,而且還能體會到Angular框架強大功能所帶來的代碼的優化,快速、高效地開發出受人喜愛的Web應用。

目錄

Contents目 錄
前 言
第1章 初識Angular 1
1.1 Angular簡介 1
1.1.1 特點 2
1.1.2 適用範圍 2
1.1.3 搭建開發Angular應用的環境 2
1.2 開發簡單的Angular應用 3
示例1-1 編寫一個簡單的Angular程序 3
示例1-2 編寫一個具有計算功能的Angular程序 4
示例1-3 編寫一個綁定頁面元素的Angular程序 6
示例1-4 編寫一個綁定多個頁面元素的Angular程序 7
1.3 本章小結 9
第2章 Angular基礎知識 10
2.1 Angular中的表達式 10
2.1.1 Angular表達式與JavaScript表達式的區別 10
示例2-1 Angular表達式與JavaScript表達式之間的相互調用 11
2.1.2 $window窗口對象在表達式中的使用 13
示例2-2 $window窗口對象在表達式中的使用 13
2.1.3 Angular表達式的容錯性 14
示例2-3 Angular表達式的容錯性 14
2.2 Angular中的控制器 16
2.2.1 控制器的概念 16
2.2.2 控制器初始化$scope對象 16
示例2-4 控制器初始化$scope對象 16
2.2.3 添加$scope對象方法 18
示例2-5 通過表達式綁定$scope對象的方法 18
示例2-6 在事件中綁定$scope對象的方法 20
示例2-7 添加帶參數的$scope方法 21
2.2.4 $scope對象屬性和方法的繼承 23
示例2-8 $scope對象中方法和屬性的繼承 23
2.3 Angular中的模板 24
2.3.1 構建模板內容 25
示例2-9 構建模板內容 25
2.3.2 使用指令複製元素 26
示例2-10 使用指令複製元素 26
2.3.3 添加元素樣式 29
示例2-11 添加元素樣式 30
2.3.4 控制元素的隱藏與顯示狀態 33
示例2-12 控制元素的隱藏與顯示狀態 33
2.4 模板中的表單控件 35
2.4.1 表單基本驗證功能 35
示例2-13 表單基本驗證功能 35
2.4.2 表單中的checkbox和radio控件 37
示例2-14 表單中的checkbox和radio控件 38
2.4.3 表單中的select控件 39
示例2-15 表單中的select控件 41
2.5 本章小結 43
第3章 Angular的過濾器和作用域 44
3.1 模板中的過濾器 44
3.1.1 排序方式過濾 44
示例3-1 排序方式過濾 45
3.1.2 匹配方式過濾 48
示例3-2 匹配方式過濾 49
3.1.3 自定義過濾器 51
示例3-3 自定義過濾器 51
3.2 過濾器的應用 54
3.2.1 表頭排序 55
示例3-4 表頭排序 55
3.2.2 字符查找 57
示例3-5 字符查找 58
3.3 作用域概述 60
3.3.1 作用域特點 60
示例3-6 $watch方法的使用 60
3.3.2 作為數據模型的作用域 62
示例3-7 作為數據模型的作用域 62
3.4 作用域的層級和事件 64
3.4.1 作用域的層級 64
示例3-8 作用域的層級 64
3.4.2 作用域事件的傳播 67
示例3-9 作用域事件的傳播 69
3.5 本章小結 71
第4章 Angular的依賴註入 72
4.1 依賴註入介紹 72
4.1.1 依賴註入的原理 72
示例4-1 依賴註入的原理 73
4.1.2 簡單依賴註入的示例 75
示例4-2 簡單依賴註入的示例 75
4.2 依賴註入標記 78
4.2.1 推斷式註入 78
示例4-3 推斷式註入的示例 78
4.2.2 標記式註入 79
示例4-4 標記式註入的示例 80
4.2.3 行內式註入 82
示例4-5 行內式註入的示例 82
4.3 $injector常用API 84
4.3.1 has和get方法 84
示例4-6 has和get方法的示例 84
4.3.2 invoke方法 86
示例4-7 invoke方法的示例 86
4.3.3 依賴註入應用的場景 88
4.4 本章小結 89
第5章 Angular中MVC模式 90
5.1 MVC模式概述 90
5.1.1 MVC簡介 90
5.1.2 使用Angular中MVC的優勢和缺點 91
5.2 Model組件 92
5.2.1 Model組件的基礎概念 92
示例5-1 Model組件的基礎概念 92
5.2.2 使用ngRepeater方式遍歷Model對象 94
示例5-2 使用ngRepeater方式遍歷Model對象 94
5.3 Controller組件 96
5.3.1 控制器的屬性和方法 96
示例5-3 控制器的屬性和方法 96
5.3.2 控制器方法中的參數 98
示例5-4 控制器方法中的參數 98
5.3.3 控制器中屬性和方法的繼承 100
示例5-5 控制器中屬性和方法的繼承 100
5.4 View組件 103
5.4.1 View組件中的模板切換 103
示例5-6 View組件中的模板切換 103
5.4.2 在切換視圖模板時傳參數 106
示例5-7 多頁面切換並傳遞參數 106
5.5 本章小結 109
第6章 Angular的服務 110
6.1 Angular服務介紹 110
6.1.1 內置服務 110
示例6-1 內置服務調用 111
6.1.2 自定義服務 112
示例6-2 使用$provide自定義服務 113
6.2 創建Angular服務 115
6.2.1 使用factory方法自定義服務 115
示例6-3 使用factory方法自定義服務 115
6.2.2 使用service方法自定義服務 117
示例6-4 使用service方法自定義服務 117
6.2.3 使用constant和value方法自定義服務 119
示例6-5 使用constant和value方法自定義服務 120
6.3 管理服務的依賴 122
6.3.1 添加自定義服務依賴項方法 122
示例6-6 添加自定義服務依賴項方法 122
6.3.2 嵌套註入服務 124
示例6-7 嵌套註入服務 125
6.4 添加服務的其他設置 127
6.4.1 服務的裝飾器 127
示例6-8 服務的裝飾器 127
6.4.2 服務的多例性 129
示例6-9 服務的多例性 129
6.5 本章小結 132
第7章 Angular與服務端交互 133
7.1 與服務端交互介紹 133
7.1.1 傳統的AJAX方式與服務端交互 134
示例7-1 傳統的AJAX方式與服務端交互 134
7.1.2 使用$http快捷方法與服務端交互 137
示例7-2 使用$http快捷方法與服務端交互 137
7.1.3 使用$http配置對象方式與服務端交互 139
示例7-3 使用$http配置對象方式與服務端交互 140
7.2 Angular中的緩存 143
7.2.1 $cacheFactory服務創建緩存對象 143
示例7-4 $cacheFactory服務創建緩存對象 144
7.2.2 $http服務中的緩存 146
示例7-5 $http服務中的緩存 146
7.2.3 自定義$http服務中的緩存 148
示例7-6 自定義$http服務中的緩存 148
7.3 $resource服務 150
7.3.1 $resource服務的使用和對象中的方法 150
示例7-7 $resource對象中方法 的使用 152
7.3.2 在$resource服務中自定義請求方法 155
示例7-8 $resource服務中自定義方法 155
7.4 promise對象 159
7.4.1 promise的基本概念和使用方法 159
示例7-9 promise對象的創建和使用 160
7.4.2 promise對象在$http中的應用 162
示例7-10 promise對象在$http中的應用 162
7.5 本章小結 164
第8章 Angular的指令 165
8.1 Angular指令概述 165
8.1.1 指令定義的基礎 165
示例8-1 創建一個新的指令 166
8.1.2 設置指令對象的基礎屬性 168
示例8-2 設置指令對象的基礎屬性 168
8.2 Angular指令對象的重要屬性 170
8.2.1 指令對象中的transclude屬性 170
示例8-3 設置指令對象中的transclude屬性 171
8.2.2 指令對象中的link屬性 173
示例8-4 設置指令對象中的link屬性 173
8.2.3 指令對象中的compile屬性 175
示例8-5 設置指令對象中的compile屬性 175
8.3 Angular指令對象的scope屬性 177
8.3.1 scope屬性是布爾值 178
示例8-6 scope屬性是布爾值 178
8.3.2 scope屬性是對象 180
示例8-7 scope屬性是JSON對象 181
8.4 Angular指令對象的require和controller屬性 183
8.4.1 require和controller屬性的概念 184
8.4.2 一個使用require和controller屬性的示例 184
示例8-8 一個使用require和controller屬性的示例 184
8.5 本章小結 187
第9章 使用$location 188
9.1 初識$location 188
9.1.1 調用$location對象的只讀方法 188
示例9-1 調用$location對象的只讀方法 189
9.1.2 調用$location對象的讀寫類方法 190
示例9-2 調用$location對象的讀寫方法 191
9.2 $location對象的事件 193
9.2.1 $locationChangeStart事件 193
示例9-3 捕捉$locationChangeStart事件 193
9.2.2 $locationChangeSuccess事件 195
示例9-4 捕捉locationChange-Success事件 195
9.3 路由模式和地址變更 197
9.3.1 標籤(hashbang)模式 198
示例9-5 標籤模式下獲取頁面URL中的內容 198
9.3.2 HTML 5模式 200
示例9-6 HTML 5模式下獲取頁面URL中的內容 200
9.3.3 模式間的區別與關聯 202
示例9-7 兩種模式下分別獲取頁面URL中的內容 203
9.3.4 路由對象方法的雙向綁定 206
示例9-8 路由對象方法的雙向綁定 207
9.4 本章小結 208
第10章 使用Angular開發的註意事項和**實踐 209
10.1 頁面元素的控制 209
10.1.1 調用element方法控制DOM元素 209
示例10-1 調用element方法控制DOM元素 210
10.1.2 解決setTimeout改變屬性的無效 212
示例10-2 解決setTimeout改變屬性的無效 212
10.1.3 解決雙大括號綁定元素時的閃爍問題 214
示例10-3 解決雙大括號綁定元素時的閃爍問題 214
10.2 使用ng-repeat時的註意事項 216
10.2.1 註意ng-repeat中的索引號 216
示例10-4 註意ng-repeat中的索引號 216
10.2.2 使用track by排序ng-repeat中的數據 219
示例10-5 使用track by排序ng-repeat中的數據 219
10.2.3 正確理解ng-repeat指令中scope的繼承關係 222
示例10-6 正確理解ng-repeat指令中scope的繼承關係 222
10.3 解決單擊按鈕事件中的冒泡現象 225
示例10-7 解決單擊按鈕事件中的冒泡現象 225
10.4 釋放多餘的$watch監測函數 227
示例10-8 釋放多餘的$watch監測函數 227
10.5 解決ng-if中ng-model值無效的問題 229
示例10-9 解決ng-if中ng-model值無效的問題 230
10.6 本章小結 231
第11章 綜合案例開發 232
11.1 基於AngularJS使用canvas繪製圓形進度條 232
11.1.1 需求分析 232
11.1.2 界面效果 233
11.1.3 功能開發 233
11.1.4 源碼解析 238
11.2 使用AngularJS開發一個抽獎應用 240
11.2.1 需求分析 240
11.2.2 界面效果 240
11.2.3 功能開發 241
11.2.4 源碼解析 247
11.3 本章小結 251