介绍:
Google公司开发维护的MVC框架,以数据和逻辑为驱动。
主要特点:模块化、双向数据绑定、依赖注入······
指令:
内置指令:
ng-app:指定应用根元素;
ng-controller:指定控制器;
ng-show:控制元素是否显示;
ng-hide:控制元素是否隐藏;
ng-if:控制元素是否存在;
ng-src:增强图片路径;
ng-href:增强地址名;
ng-class:控制类名;
ng-include:引入模版;
ng-disabled:表单禁用······
自定义指令:
数据绑定:
通过{{}}和ng-bind实现数据的绑定,通过其作用范围的$scope来提供数据。
通过{{}}绑定数据时会有闪烁,可添加ng-cloak解决闪烁。
通过ng-init可初始化$scope。
可以用过ng-repeat、ng-switch、on、ng-switch-when对数据进行处理。
作用域:
一个根元素ng-app在启动时会创建一个根作用域$rootScope,在根作用域的范围内都可访问到。
通过ng-controller可创建一个自作用域,子作用域内可访问到外界父作用域的数据。
过滤器:
内置过滤器:
currency:转化为货币格式;
date:转化为日期格式;
filter:在给定数组中选择满足条件的子集,返回一个新数组;
json:将js对象转换为json字符串;
limitTo:取出字符串或数组的前num(num>0)位或后num(num<0)位;
lowercase:转化为小写格式;
uppercase:转化为大写格式;
number:数字格式化,可控制小数位数;
orderBy:对数组排序······
自定义过滤器:
依赖注入:
依赖注入是在运行时自动查找依赖关系,然后将查找到依赖传递给使用者的一种机制。
推断式注入:
此方式在经过压缩后,函数的参数可能会被压缩,造成依赖无法识别。
行内式注入:
服务:
内建服务:
$location是对js中的location对象属性和方法的封装:
$timeout和$interval是对js中的setTimeout和setInterval进行封装:
$filter在控制器中格式化数据:
$log打印信息:
$http请求:
自定义服务:
三种自定义服务的方法:factory,service,value。
factory:
service:
value:
模块加载:
有config配置块和run运行块。
config:
通过config方法实现对模块的配置,angular中的大部分服务都有一个对应的provider,用来执行与对应服务相同的功能或对其进行配置。
比如:$log、$http、$location都是内置服务,对应的provider分别是$logProvider,$httpProvider,$locationProvider。
run:
run可以直接运行模块,同时run方法还是最先执行。