Angular

作者:武超敏

邮箱:wuchaomin@haomo-studio.com

更改历史

* 2018-01-27    高天阳     整理文档 补充$log
* 2018-01-23    武超敏     增加$q内容
* 2017-09-17    张飞       添加参考链接
* 2017-06-01    杨丽       初始化文档

1 历史、现状和发展

1.1 历史

AngularJS最初由Misko HeveryAdam 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 服务

服务是一个对象或函数,对外提供特定的功能。

内建服务:

  1. $location是对原生Javascript中location对象属性和方法的封装。

  2. $timeout&$interval对原生Javascript中的setTimeout和setInterval进行了封装。

  3. $filter在控制器中格式化数据。

  4. $log打印调试信息

  5. $http用于向服务端发起异步请求。

  6. 同时还支持多种快捷方式如$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?