前 言
第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
· · · · · · (
收起)