angularjs杂谈
1.MVVM的看法:我给view里面各种控件也定义一个对应的数据对象,这样,只要修改这个数据对象,view里面显示的内容就自动跟着刷新,而在view里做了任何操作,这个数据对象也跟着自动更新。
ViewModel:就是与界面(view)对应的Model。因为,数据库结构往往是不能直接跟界面控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。
简单的说,ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定。
2.动态,交互密集型。
核心功能
3.《angularjs权威教程》目录
第三章 模块 3.1参数[3.1.1name(字符串) 3.1.2require(字符串数组)]
第四章 作用域 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控制器嵌套(作用域包含作用域)
第六章 表达式 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打包模板