Angularjs Module类的介绍及模块化依赖
后面的学习我们会遵循一个控制器管理一个视图,一个路由对应一个视图的单一原则,所以再不会将controller控制器代码直接写到 index.html 中.
我们会应用到angular.js中强大的模块来开发,比如路由,服务,过滤器,指令等模块.
所以这一篇博客很有必要把各个模块之间的依赖关系,定义,使用等问题陈述一下.
那么angular.js 到底是如何加载启动起来的呢.
<!DOCTYPE html>
<html ng-app="YIJIEBUYI">
<head>
<script src="http://cdn.bootcss.com/angular.js/1.3.8/angular.min.js"></script> <script type="text/javascript">
var myApp = angular.module("YIJIEBUYI" , []).
controller( "myCtrl", function ($scope) {
$scope.name = '一介布衣';
});
</script>
</head>
<body>
<div ng-controller="myCtrl">
显示文字,<span ng-bind="name" ></span>
</div>
</body>
</html>
这是上一篇我们做的一个非常简单的 index.html 的页面.
启动服务后,angular.js 通过哪个main 方法启动?
事实上浏览器打开 index.html 后,angular.js 没有什么main 方法,angular.js 通过模块来代替 main,模块之间通过申明来描述其中的依赖关系,以及模块之间的组装和启动.
ng-app 指令告诉Angular.js 使用 YIJIEBUYI 模块来启动应用.
模块启动经历2个阶段.
1.Config 代码,AngularJS会连接并注册好所有数据源,不确定的服务或者数据不会注入进来.
2.Run 代码,启动你的应用,在注射器创建完成之后开始执行,只有实例和常量可以被注入到Run代码块,这时Run代码块类似其他语言的main方法.
模块可以通过API来实例化控制器,指令,过滤器和服务.
常用的API如下:
1.config(configFn)
利用此方法可以做一些注册工作,这些工作需要在模块加载时完成.
比如 ui.router 模块,完全可以在此方法中注册.
2.constant(name, object)
此方法会首先运行,所以你可以用它来声明整个应用范围内的常量,并且让它们在所有配置(config方法)和实例(后面的所有方法,例如controller、service等)方法中可用.
3.controller(name,constructor)
它的基本作用是配置好控制器方便后面使用.
4.directive(name,directiveFactory)
可以使用此方法在应用中创建指令.
5.filter(name,filterFactory)
允许你创建命名的AngularJS过滤器,就像前面章节所讨论的那样.
6.run(initializationFn)
如果你想要在注射器启动之后执行某些操作,而这些操作需要在页面对用户可用之前执行,就可以使用此方法.
7.value(name,object)
允许在整个应用中注射值.
8.factory(name,factoryFn)
如果你有一个类或者对象,需要首先为它提供一些逻辑或者参数,然后才能对它初始化,那么你就可以使用这里的factory接口。factory是一个函数,它负责创建一些特定的值(或者对象).
9.service(name,object)
factory和service之间的不同点在于,factory会直接调用传递给它的函数,然后返回执行的结果;而service将会使用"new"关键字来调用传递给它的构造方法,然后再返回结果.
10.provider(name,providerFn)
provider是这几个方法中最复杂的部分(显然,也是可配置性最好的部分).
provider中既绑定了factory也绑定了service,并且在注入系统准备完毕之前,还可以享受到配置provider函数的好处(也就是config块).
Angularjs Module类的介绍及模块化依赖的更多相关文章
- 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比
[原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...
- Java基础-Date类常用方法介绍
Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...
- 北风设计模式课程---20、UML类图介绍
北风设计模式课程---20.UML类图介绍 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装备工厂先生 ...
- UML 类图介绍
UML 类图介绍 一. UML 简介 UML ( Unified Modeling Language )即统一建模语言,是 OMG ( Object Management Group )发表的图标式软 ...
- UML类图介绍&类的六大关系
UML类图介绍&类的六大关系 官方定义 UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的方式 UML 图形化的语言 基本介绍 UML图: ...
- oc-12-NSString 类简单介绍及用法
// 11-[掌握]NSString 类简单介绍及用法 #import <Foundation/Foundation.h> int main(int argc, const char * ...
- 【Entity Framework】初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍
本节,简单的介绍EF中的ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager这个几个比较重要的类,它们都位于System.Data ...
- Entity Framework 学习初级篇2--ObjectContext类的介绍
转自:http://www.cnblogs.com/Tally/archive/2012/09/14/2685014.html 本节,简单的介绍EF中的ObjectContext.ObjectQuer ...
- CImage类的介绍与使用
CImage类的介绍与使用 程序代码下载处:http://download.csdn.net/source/2098910 下载处:http://hi.baidu.com/wangleitongxin ...
随机推荐
- [Javascript] Prototype, hasOwnProperty(), valueOf() and toString() methods.
Sometime, use can rewrite the toString , valueOf method to make those function more useful: For exma ...
- 在 Ubuntu 12.04 上通过源码安装 Open vSwitch (OVS)
安装 Ubuntu 12.04, 而且更新系统 apt-getupdate; apt-getupgrade; 安装所需的package apt-get install automake autocon ...
- PCL系列——怎样逐渐地配准一对点云
欢迎訪问 博客新址 PCL系列 PCL系列--读入PCD格式文件操作 PCL系列--将点云数据写入PCD格式文件 PCL系列--拼接两个点云 PCL系列--从深度图像(RangeImage)中提取NA ...
- 【android】模拟点击某个指定坐标作用在View上
/** * 模拟点击某个指定坐标作用在View上 * @param view * @param x * @param y */ public void clickView(View view,floa ...
- Linux下C与Mysql的混合编程
1 概述 MySQL 是一个关系型数据库管理系统.由瑞典MySQL AB公司开发,眼下属于Oracle公司.MySQL是最流行的关系型数据库管理系统. 支持AIX.FreeBSD.HP-UX.Linu ...
- 解决 vue 的缩进问题 及 vue 的 sass 调用 mixin 函数
1.解决 vue 的缩进问题 配置 eslint , 只要要eslint 对应的值为 0,则 eslint 将不会对其进行检测 (.eslintrc.js -- rules ) A. 不检测 缩进 ...
- notify notifyAll 死锁
从一个死锁分析wait,notify,notifyAll 泡芙掠夺者 关注 2017.08.24 22:00* 字数 1361 阅读 249评论 3喜欢 7赞赏 1 本文通过wait(),notify ...
- maven org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60
maven org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant poo ...
- Java 获取盘符及分类
import java.io.File; import javax.swing.filechooser.FileSystemView; public class ByteTest { public s ...
- WinForm如何调用Web Service
参考地址 今天看了李天平关于WinForm调用Web Service的代码,我自己模仿做一个代码基本都是复制粘贴的,结果不好使.郁闷的是,又碰到那个该死的GET调用Web Service,我想肯定又是 ...