1.MVVM的見解:我給view裏面各類控件也定義一個對應的數據對象,這樣,只要修改這個數據對象,view裏面顯示的內容就自動跟着刷新,而在view裏作了任何操做,這個數據對象也跟着自動更新。css
ViewModel:就是與界面(view)對應的Model。由於,數據庫結構每每是不能直接跟界面控件一一對應上的,因此,須要再定義一個數據對象專門對應view上的控件。而ViewModel的職責就是把model對象封裝成能夠顯示和接受輸入的界面數據對象。html
簡單的說,ViewModel就是View與Model的鏈接器,View與Model經過ViewModel實現雙向綁定。html5
2.動態,交互密集型。angularjs
核心功能web
3.《angularjs權威教程》目錄數據庫
第三章 模塊 3.1參數[3.1.1name(字符串) 3.1.2require(字符串數組)]json
第四章 做用域 4.1視圖和$scope的世界 4.2就是html而已 4.3做用域能作什麼 跨域
4.4$scope的生命週期[4.4.1 建立 4.4.2連接 4.4.3更新 4.4.4銷燬] 4.5指令和做用域數組
第五章 控制器 5.1控制器嵌套(做用域包含做用域)promise
第六章 表達式 6.1解析angularjs表達式 6.2插值字符串
第七章 過濾器 7.1自定義過濾器 7.2表單驗證
第八章 指令簡介 8.1指令:自定義html元素和屬性 8.2向指令中傳遞數據
第九章 內置指令 9.1基礎ng屬性指令[9.1.1布爾屬性 9.1.2類布爾屬性] 9.2在指令中使用子做用域
第十章 指令詳解 10.1指令定義[10.1.1restrict(字符串) 10.1.2優先級(數值型) 10.1.3terminal(布爾型)
10.1.4template(字符串) 10.1.5templateUrl(字符串或函數)10.1.6replace(布爾型)]
10.2指令做用域[10.2.1scope參數(布爾型或對象) 10.2.2隔離做用域]
10.3綁定策略[10.3.1transclude 10.3.2controller(字符串或函數)10.3.3controllerAs(字符串) 10.3.4require(字符串或數組)]
10.4angularjs的生命週期[10.4.1編譯階段 10.4.2compile(對象或函數) 10.4.3連接]
10.5ngModel[10.5.1自定義渲染 10.5.2屬性]
10.6自定義驗證
第十一章 Angularjs模塊加載 11.1配置 11.2運行塊
第十二章 多重視圖和路由 12.1安裝 12.2佈局模塊 12.3路由 12.4$location服務
12.5路由模式[12.5.1html5模式 12.5.2路由事件 12.5.3關於搜索引擎索引]
12.6更多關於路由的內容[12.6.1頁面從新加載 12.6.2異步的地址變化]
第十三章 依賴注入 13.1推斷式注入聲明 13.2顯示注入聲明 13.3行內注入聲明
13.4$injector API [13.4.1annotate()13.4.2get()13.4.3has()13.4.4instantiate 13.4.5invoke()]
13.5ngMin [13.5.1安裝 13.5.2使用ngMin 13.5.3工做原理]
第十四章 服務 14.1註冊一個服務 14.2使用服務 14.3 建立服務時的設置項[14.3.1factory()14.3.2service()
14.3.3provider()14.3.4constant()14.3.5value() 14.3.6什麼時候使用value()和constant()
14.3.7decorator()]
第十五章 同外界通訊:XHR和服務器通訊 15.1使用$http 15.2設置對象 15.3響應對象 15.4緩存http請求
15.5攔截器 15.6設置$httpProvider 15.7使用$resource 15.8安裝
15.9應用$resource[15.9.1 基於http get方法 15.9.2基於非http get類型的方法
15.9.3$resource實例 15.9.4$resource實例是異步的 15.9.5附加屬性]
15.10 自定義$resource方法 15.11$resource設置對象 15.12$resource服務
15.13使用Restangular 15.14Restangular簡介 15.15安裝Restangular 15.16Restangular對象簡介
15.17使用Restangular[15.17.1個人http方法怎麼1辦 15.17.2自定義查詢參數和頭]
15.18設置Restangular
第十六章 XHR實踐 16.1跨域和同源策略 16.2JSONP
16.3使用cors[16.3.1設置 16.3.2服務端cors支持 16.3.3簡單請求 16.3.4非簡單請求]
16.4 服務器端代理 16.5 使用json 16.6使用xml
16.7使用angularjs進行身份驗證(16.7.1服務器端需求 16.7.2客戶端身份驗證)
16.8和MongoDB通訊
第十七章 promise 17.1什麼是promise 17.2爲何使用promise 17.3angular中的promise
17.4鏈式請求[17.4.1all(promise)17.4.2defer()17.4.3reject(reason)17.4.4when(value)]
第十八章 服務器通訊 18.1自定義服務器 18.2安裝Nodejs 18.3安裝Express 18.4調用Api
18.5使用AmazonAWS的無服務器應用[18.5.1DynamoDB 18.5.2簡單通知服務(SNS)
18.5.3簡單隊列服務(SQS,Simple Queue Service)18.5.4簡單存儲服務(S3)18.5.5安全令牌服務(STS)]
18.6AWSJS + Angular 18.7開始 18.8介紹 18.9安裝 18.10運行 18.11用戶認證/鑑權 18.12UserService
18.13遷移到AWS上 18.14AWSService 18.15 在Dynamo上開始 18.16$cacheFactory 18.17保存currentUser
18.18上傳到S3 18.19處理文件上傳 18.20查詢Dynamo 18.21在Html顯示列表 18.22出售咱們的做品
18.23 使用Stripe 18.24使用Firebase的無服務應用 18.24使用Firebase和Angular的三方數據綁定
18.26從AngularFire開始 [18.26.1註冊並建立一個Firebase 18.26.2包含Firebase和AngularFire庫
18.26.3把Firebase做爲依賴項添加 18.26.4綁定模型到FirebaseURL 18.26.5數據同步]
18.27在AngularFire中排序 18.28Firebase事件 18.29顯示同步 18.30用AngularFire進行認證
18.31認證事件{18.31.1$logout() 18.31.2$cresteUser() }
18.32使用Firebase託管部署你的Angular應用{18.32.1安裝Firebase工具 18.32.2部署你的web站點}
18.33 除了AngularFire以外
第十九章 測試 19.1爲何要作測試 19.2測試策略 19.3開始測試 19.4AngularJs測試的類型{19.4.1單元測試 19.4.2端到端測試}
19.5開始 19.6初始化Karma配置文件 19.7配置選項 19.8使用RequireJS
19.9Jasmine {19.9.1 細則套件 19.9.2定義一個細則} 19.10預期{19.10.1內置的匹配器 19.10.2安裝和卸載}
19.11端到端的介紹{19.11.1選項輸入 19.11.2重複循環元素} 19.12模擬和測試幫助函數
19.13模擬$httpBackend 19.14測試一個應用{19.14.1測試路由 19.14.2測試頁面內容 19.14.3測試控制器
19.14.4測試服務和工廠 19.14.5測試過濾器 19.14.6測試模板 19.14.7測試指令}
19.15測試事件 19.16對Angular的持續集成 19.17Protractor 19.18配置 19.19配置選項 19.20編寫測試
19.21測試實踐{19.21.1咱們的應用 19.21.2測試的策略}19.22創建咱們的第一個測試
19.23測試輸入框{19.23.1測試列表 19.23.2測試路由} 19.24頁面對象
第二十章 事件 20.1什麼是事件 20.2事件傳播{20.2.1使用$emit來冒泡事件 20.2.2使用$broadcast向下傳遞事件}
20.3事件監聽 20.4事件對象 20.5事件相關的核心服務{20.5.1核心系統的$emitted事件
20.5.2核心系統的$broadcast事件 }
第二十一章 架構 21.1目錄架構 21.2模塊 21.3控制器 21.4指令 21.5測試
第二十二章 Angular動畫 22.1安裝 22.2它是如何運做的 22.3使用CSS3過渡 22.4使用CSS3動畫
22.5交錯CSS過渡/動畫{22.5.1交錯CSS過渡 22.5.2交錯CSS動畫 22.5.3什麼指令支持交錯動畫}
22.6使用JavaScript動畫 22.7微調動畫 22.8DOM回調事件 22.9內置指令的動畫{22.9.1ngRepeat 動畫
22.9.2ngView動畫 22.9.3ngInclude動畫 22.9.4 ngSwitch動畫 22.9.5ngIf動畫 22.9.6ngClass動畫
22.9.7 ngShow/ngHide動畫} 22.10建立自定義動畫{22.10.1 addClass()22.10.2removeClass()
22.10.3enter()22.10.4leave() 22.10.5 move()} 22.11與第三方庫集成{22.11.1Animate.css
22.11.2TweenMax/TweenLite}
第二十三章 digest循環he$apply 23.1$watch列表 23.2髒值檢查 23.3$watch 23.4$watchColletion 23.5頁面中的$digest循環
23.6$evalAsync列表 23.7$apply 23.8什麼時候使用$apply
第二十五章 AngularJS精華擴展 25.1AngularUI 25.2安裝 25.3ui-router{25.3.1安裝 25.3.2事件 25.3.2$stateParams
25.3.4$urlRouterProvider 25.3.5建立一個導航程序} 25.4ui-utils{25.4.1安裝 25.4.2mask 25.4.3ui-event
25.4.4ui-format
第二十六章 移動應用 26.1響應式Web應用 26.2交互{26.2.1安裝 26.2.2ngTouch 26.2.3$swipe服務
26.2.4angular-gestures和多點觸控手勢 26.2.5安裝angular-gestures 26.2.6使用angular-gesture}
26.3Cordova中的原生應用程序 26.4Cordova入門{26.4.1Cordova開發流程 26.4.2平臺 26.4.3插件 26.4.4構建
26.4.5模擬和運行 26.4.6開發階段 26.4.7Angular中的Cordova} 26.5引入Angular
26.6使用Yeoman構建{26.6.1修改Yeoman以便使用Cordova 26.6.2裝配Yeoman構建 26.6.3構建移動部分
26.6.4處理引導程序}
第二十七章 本地化 27.1angular-translate 27.2安裝 27.3教你的應用一種新語言 27.4多語言支持 27.5運行時切換語言
27.6加載語言 27.7angular-gettext 27.8安裝 27.9 用法 27.10字符串提取 27.11翻譯字符串
27.12編譯新語言 27.13改變語言
第二十八章 緩存 28.1什麼是緩存 28.2Angular中的緩存{28.2.1$cacheFactory 28.2.2緩存對象} 28.3$http中的緩存{
28.3.1默認的$http緩存 28.3.2自定義緩存} 28.4爲$http設置默認緩存
第二十九章 安全性 29.1嚴格的上下文轉義 29.2URL白名單 29.3URL黑名單 29.4$sceAPI{29.4.1getTrusted 29.4.2parse
29.4.3trustAs 29.4.4isEnabled} 29.5 配置$sce 29.6可信賴的上下文類型
第三十章 AngularJS和IE瀏覽器 30.1Ajax緩存 30.2angularJS中的SEO 30.3使Angular應用可被索引 30.4服務端{
30.4.1hashbang 30.4.2html5路由模式} 30.5服務端處理SEO的選項{30.5.1使用Node/Express中間件
30.5.2使用Apache重寫URL 30.5.3使用Ngnix代理URL} 30.6獲取快照 30.7使用Zombie.js獲取Html快照
30.8使用grunt-html-snapshot 30.9Prerender.io 30.10<noscript>方法
第三十一章 構建Angular Chrome應用 31.1瞭解Chrome應用{31.1.1manifest.json 31.1.2 背景腳本 31.1.3視圖}
31.2構建你的Chrome應用 31.3搭建框架 31.4manifest.json 31.5tab.html 31.6在Chrome中加載應用
31.7主模塊 31.8構建主要 31.9使用Wunderground的天氣API 31.10設置界面 31.11實現用戶服務
31.12城市自動填充/自動完成 31.13添加區時支持
第三十二章 優化Angular應用 32.1優化什麼 32.2優化$digest循環 32.3優化ng-repeat 32.4優化$digest調用
32.5優化$watch函數{32.5.1bindonce 32.5.2$watch函數的自動化} 32.6優化過濾器{32.6.1不變的數據
32.6.2過濾後的數據} 32.7頁面加載優化技巧{32.7.1壓縮 32.7.2利用$templateCache}
第三十三章 調試Angularjs 33.1從DOM中調試{33.1.1scope()33.1.2controller()33.1.3injector() 33.1.4inhertedDate()} 33.2調試器 33.3Angular Batarang {33.3.1安裝Batarang 33.3.2檢查模型
33.3.3檢查性能 33.3.2檢查依賴圖表 33.3.5可視化應用}
第三十四章 下一步 34.1jqLite和jQuery 34.2瞭解基本工具 34.3Grunt 34.4grunt-angular-templates{34.4.1安裝
34.4.2用法 34.4.3可用選項 34.4.4用法} 34.5Lineman 34.6Bower{34.6.1安裝 34.6.2Bower簡介 ...}
34.7Yeoman 34.8配置Angular生成器{34.8.1CoffeeScript 34.8.2安全壓縮 34.8.3跳過索引}
34.9測試應用 34.10打包應用 34.11打包模板