angularJS 模块可以在被加载和执行之前对其自身进行配置
作用就是:在应用的加载阶段应用不同的逻辑
我们知道 前面注册一个模块方法是:
var app = angular.module("myApp", []);
这种方法带有两个参数,一个是模板名,一个是依赖注入列表,数组为空,表示当前注册的模板不需要依赖关系
这种方法注册的模板,angularJS机制会新建一个模板,
还有另外一种方式来获取一个模板
var app = angular.module("myApp");
这种方法只带有一个参数,就是模板的名称,很容易懂,就是如果我的应用程序中有了这个模板,那么就返回这个模板一样配置的模板,
但是注意的是,他们是同一个模板,如果在我们的应用程序中不存在这个模板,那么就会抛出异常的
angular.module()创建、获取、注册angular中的模块
The angular.module()
is a global place for creating, registering and retrieving Angular modules.When passed two or more arguments, a new module is created. If passed only one argument, an existing module (the name passed as the first argument to module
) is retrieved。
再说配置 angularJS会在 提供者 注册和配置的过程中对模板进行配置,
在整个angularJS的工作流中,也只有这个阶段可以是唯一可以对应用进行修改的地方
它的定义一般是这样的,使用方法,config
var app = angular.module("myApp", []);
app.config(function(){
//
})
再来深刻理解 config的工作流程:
我们现在新建了一个模板:这个模板中有一个服务,一个自定义指令
var app = angular.module("myApp", []);
app.fatory('myFactory',function(){
//利用工厂生产 创建一个 服务
var service = {};
return service;
});
app.directive('myDirectiive',function(){
//创建 一个 自定义指令
return {
template:'<div><button>click me</button></div>'
}
});
angularJS编译的流程是这样的:
var app = angular.module('myApp',[]); app.config(function($provide,$compileProvider){ $provide.factory('myFactory',function(){ var service = {}; return service; }); $compileProvider.directive('myDiretive',function(){ return { template:'<div><button>click me</button></div>' } }); });
PS:angularJS会根据你定义的函数顺序来执行他们,
我们知道了angularJS以什么样的方式执行我们定义的服务,指令,变量,这就给我们带来一个问题,
什么样的东西,才会是在config()的时候被执行的呢,换句话说是这样的东西能够被注入到config里面呢
答案是:提供者 和常量
这里提供一个常量注入配置的例子:
app.config(function(gameProvider){
gameProvider.setType("War")
});