module
目前我选编写的都是在AngularJs-1.5版本,如有疑问可以联系我。
理解模块的生命周期。
config 和 run 方法是模块调用时加载的方法。那么module的执行顺序是怎么样呢。
config方法是在module 被加载后调用的方法。run 方法是在所有的模块都被加载后调用的方法。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ng-app="exampleApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Cycle</title> <script src="angular.js"></script> <link href="bootstrap-theme.css" rel="stylesheet" /> <link href="bootstrap.css" rel="stylesheet" /> <script> var app = angular.module("exampleApp", ["exampleApp.Services"]); app.constant("startTime", new Date().toLocaleDateString()); app.config(function (startTime) { console.log("Main Module config:" + startTime); }); app.run(function (startTime) { console.log("Main module run:" + startTime); }); var now = new Date(); app.value("nowValue", now); angular.module("exampleApp.Services", []) .service("days", function (nowValue) { this.today = nowValue.getDay(); this.tomorrow = this.today + 1; }) .config(function () { console.log("Services module config:" + "(no time)"); }) .run(function (startTime) { console.log("Services module run:" + startTime); }); </script> </head> <body > </body> </html>
运行结果:
创建
var app = angular.module("exampleApp", ["exampleApp.Services"]);
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="exampleApp">
module 函数包含三个参数(name,requires,config);
name:表示需要创建模块的名字如:exampleApp;
requires:表示创建时所依赖的模块的名字。
config:表示注册模块回调的函数。//相当于 app.config();
var app = angular.module("exampleApp", ["exampleApp.Services"], function (startTime) { console.log("Main Module config:" + startTime); });
引用
var app = angular.module("exampleApp");
上面的表示,exampleApp 的module已被创建,当出现这句代码,AngularJs就会查找该模块。
summary
在使用模块时,AngularJs保证了主模块所依赖的模块的回调函数先解析。由于run方法是在所有的模块都加载后才执行的。所有,当依赖模块的config解析之后,等到所有的模块都被加载,在执行依赖的run方法,最后是主模块的run方法。