众所周知,任何MVC框架都有一个前控制器,如sencha中的launch.js,symfony1中的frontend_dev.php等。
但正如我正在阅读本书:由布拉德·格林撰写的Angular JS,在第7章中,提到没有这样的主要方法,所以我怀疑如何处理预执行功能或预先配置/检查。有没有其他方法来处理这个问题。
答案 0 :(得分:2)
app.run()
是您正在寻找的,在您的模块声明之后,您可以处理任何预执行配置。
app.run(["$rootScope", ....other dependencies
function ($rootScope,....) {
}] );
答案 1 :(得分:2)
我猜你正在寻找的是跑步阶段。
在运行阶段,所有设置都会运行,在启动任何特定控制器之前,您可以执行配置,添加处理程序等。
来自文档:
angular.module('myModule', []).
config(function(injectables) { // provider-injector
// This is an example of config block.
// You can have as many of these as you want.
// You can only inject Providers (not instances)
// into config blocks.
}).
run(function(injectables) { // instance-injector
// This is an example of a run block.
// You can have as many of these as you want.
// You can only inject instances (not Providers)
// into run blocks
});
您可以在文档here中查看。
此阶段根据您的需要运行并添加事件。例如,如果您希望每次检测到某些操作时页面更改的开始,您可以执行以下操作:
myapp.run(
function ($rootScope) {
$rootScope.$on('$routeChangeStart', function () {
// Do something when the stateChange starts
});
$rootScope.$on('$routeChangeSuccess', function () {
// Do something else when the state change is successful.
});
}
)