AngularJs大全
来源:互联网 发布:淘宝哪家店衣服好看 编辑:程序博客网 时间:2024/06/10 04:14
AngularJS主要组成部分如下:
{
启动(startup),
执行期(runtime),
作用域(scope),
控制器(controller),
模型(model),应用的数据
视图(view),用户看到的
指令(directives),扩展html语法
过滤器(filter),数据本地化
注入器(injector),聚合你的应用
模块(module),配置注入器
$,angularJS的命名空间
}
<!DOCTYPE html><html ng-app="model"><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script><script type="text/javascript" src="twoScript.js"></script></head><body><p ng-init="name='world'">hello {{name}}</p></body></html>
如上代码的执行过程:
{
1.浏览器载入HTML,编译成dom,
2.浏览器载入angularjs
3.angularjs等待DomContextLoaded上下文加载完毕事件触发
4.angularjs寻找ng-app指令,
5.使用ng-app指定的模块来配置注入器$injector
6.注入器创建“编译服务($compile service)”和“跟作用域($rootScope)”
7.编译服务编译dom并链接到跟作用域
8.ng-init指令将“word”赋值给作用域中的name
9.通过{{name}}插值表达式,替换为word
}
下面来看这样一个案例:
<!DOCTYPE html><html ng-app><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script><script type="text/javascript" src="twoScript.js"></script></head><body><!-- <p ng-init="name='world'">hello {{name}}</p> --><input type="text" ng-model="name"><p>{{name}}</p></body></html>
执行过程如下:(注:给input标签绑定了ng-model指令后,同时也表示给input绑定了keydown监听事件)
{
1.按下任意键都会触发input上的keydown事件
2.input中的指令检测到input中的值改变,然后调用$apply("name='x'")来更新angularjs中执行上下文的模型
3.angularjs将name=‘x’运用到模型中
4.$digest开始执行循环
5.$watch列表检测到name值的变化,通知{{name}}去更新dom
6.angularjs退出上下文,然后退出JavaScript中的keydown事件
7.浏览器以更新的文本重新渲染视图
}
3.作用域(socpe):作用域是用来检测模型的变化和为表达式提供执行上下文
如下面的代码解释了作用域:
<div ng-controller="aaa"><p>{{name}}</p></div><div ng-controller="bbb"><ol><li ng-repeat="name in mas">{{name}}</li></ol></div>
function aaa($scope){$scope.name="aaa的name";}function bbb($scope){$scope.mas=["bbb1","bbb2","bbb3"];}
4.控制器
视图背后的控制代码就是控制器
5.指令:有某个元素名称,属性,css类名出现而导致的行为
6.过滤器
7.模板和注入器
<!DOCTYPE html>
<html ng-app="timeModule">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script type="text/javascript" src="threeScript.js"></script>
</head>
<body>
<div ng-controller="asd">
<p ng-bind="time"></p>
</div>
</body>
</html>
js:
var app=angular.module('timeModule',[]);
app.factory("time",function(){
var time={};
time.now=new Date().toString();
return time;
});
app.controller("asd",function($scope,time){
$scope.time=time.now;
});
andularjs中自定义的模块常用的的依赖方法有以下几种:
{
1.config 代码,angularjs会连接并注册好所有的数据源,不确定的数据和服务不会被注册进来
2.run代码,启动你的应用,在注册器完成后开始执行,只有实例和常量会被注册到run里,
这时run代码类似与main方法,模块可以通过api来实例化控制器,服务,指令和过滤器
常用的api如下:
{
1.config(configfn):利用此方法可以做一些注册工作,这个工作需要在模块加载完成时执行
2.constant(name,obj):这个方法会首先执行,所以你可以用它来声一些常量,并且让他们
可以被config配置方法和一些实例代码中(如:controller,service等)使用。
3.controller(name,constructor):配置好控制器,方便后面使用
4.directive(name,directiveFactory):可以使用此方法创建指令
5.filter (name,filterFactory):允许你创建angularjs过滤器
6.run(initFn)如果你想要在注射器启动之后执行某些操作,而这些操作需要在页面对用户可用之前执行,就可以使用此方法
7.value(name,obj)允许在整个应用中注射值
8.factory(name,factoryfn:如果你有一个类或对象,为它提供一些参数之后才执行初始化,那么可以在这个接口中声明这些参数
9.service(name,obj): factory和service之间的不同点在于,factory会直接调用传递给它的函数,然后返回执行的结果;而service将会使用"new"关键字来调用传递给它的构造方法,然后再返回结果.
10.provider(name,providerfn):provider中既绑定了factory也绑定了service,并且在注入系统准备完毕之前,还可以享受到配置provider函数的好处(也就是config块).
}
}
- AngularJs大全
- AngularJs内置指令大全
- AngularJS 日期格式化 实例大全
- 跟我学AngularJs:AngularJs内置指令大全
- AngularJS
- angularjs
- Angularjs
- angularJS
- AngularJS
- AngularJS
- AngularJS
- AngularJs
- AngularJS
- AngularJs
- AngularJs
- AngularJS
- AngularJS
- AngularJS
- OpenFlow协议-OpenFlow Switch篇
- Linux ---lseek() 函数
- SpringMVC
- 从高考到程序员
- 线性表的应用——求解两个多项式相加问题描述(顺序表求解)
- AngularJs大全
- 生产者-消费者模型
- Myeclipse导入包快捷键
- powerdesigner建模
- 饭卡(01背包)
- EasyUI
- java试题记录
- 线性表的应用——求解两个多项式相加问题描述(链表求解)
- Android 接口定义语言 (AIDL)