Angular
作者:武超敏
邮箱:wuchaomin@haomo-studio.com
更改历史
* 2018-01-27 高天阳 整理文档 补充$log
* 2018-01-23 武超敏 增加$q内容
* 2017-09-17 张飞 添加参考链接
* 2017-06-01 杨丽 初始化文档1 历史、现状和发展
1.1 历史
AngularJS最初由Misko Hevery和Adam Abrons于2009年开发,后来成为了Google公司的项目。 AngularJS弥补了HTML在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展Web应用中的HTML词汇, 使开发者可以使用HTML来声明动态内容,从而使得Web开发和测试工作变得更加容易。
1.2 简介
AngularJS是一个JavaScript框架。它可通过 <script> 标签添加到HTML页面。 AngularJS通过指令扩展了HTML,且通过表达式绑定数据到HTML。
1.3 特点
AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
2 安装和使用
2.1 安装angular
2.2 常用的指令
mg-app
ng-model
ng-controller
ng-if
ng-show
ng-hide
ng-repeat
2.3 服务
服务是一个对象或函数,对外提供特定的功能。
内建服务:
$location是对原生Javascript中location对象属性和方法的封装。
$timeout&$interval对原生Javascript中的setTimeout和setInterval进行了封装。
$filter在控制器中格式化数据。
$log打印调试信息
$http用于向服务端发起异步请求。
同时还支持多种快捷方式如$http.get()、$http.post()、$http.jsonp。
angular提供了3种方法来创建并注册我们自己的service
Factory,
Service,
Provider
例子:
value 传递值
service (new 实例化)
factory (执行实例化)
provider
(是唯一一种你可以传进 .config() 函数的 service。当你想要在 service 对象启用之前,先进行模块范围的配置,那就应该用 provider)
tips:得到的是$get() 执行之后的数据
2.4config
tips:注意名字后面加Provider
常用的$provide $compileProvider
2.5directive
priority
template
返回函数的时候函数里面要返回string (第二个形参看作元素)
返回对象
templateUrl
replace:是否替换原标签
transclude
restrict E(元素),A(属性),C(类),M(注释) (默认为A)
E(元素):<directiveName></directiveName>
A(属性):<div directiveName='expression'></div>
C(类): <div class='directiveName'></div>
M(注释):<--directive:directiveName expression-->
scope
false:同用一个scope true:继承父scope如果自己有侧不用父scope的了 {}:不继承自己是单独的
隔离之后的双向绑定 {user: "="} 这个scope的user于父scope的user同步 {user: "@"} 父会改变它 它不会改变父 {fn: "&"} 拿到父的user这个函数
compile
link
2.6filter
2.7$q
2.7.1$q.all的嵌套
函数1、2使用$q执行异步操作,对结果进行操作并执行函数5, 函数3、4使用$q执行异步操作,对结果进行操作并执行函数6, 函数5、6使用$q执行异步操作,对结果进行操作。
2.7.2$q原生(只为方便理解,不是实际的原生)
2.7.3$q.all原生(只为方便理解,不是实际的原生。q1()、q2()的实现参考$q原生)
2.8 ui-router
$stateProvider
2.9 $log
参考资料
Last updated
Was this helpful?