和配置塊不同,運行塊在注入器創建之后被執行,它是所有AngularJS應用中第一個被執行的方法。
運行塊是AngularJS中與main方法最接近的概念。運行塊中的代碼塊通常很難進行單元測試,它是和應用本身高度耦合的。
運行塊通常用來注冊全局的事件監聽器。例如,我們會在.run()塊中設置路由事件的監聽器以及過濾未經授權的請求。
假設我們需要在每次路由發生變化時,都執行一個函數來驗證用戶的權限,放置這個功能唯一合理的地方就是run方法:
angular.module('myApp', ['ngRoute'])
.run(function($rootScope, AuthService) {
$rootScope.$on('$routeChangeStart', function(evt, next, current) {
// 如果用戶未登錄
if (!AuthService.userLoggedIn()) {
if (next.templateUrl === "login.html") {
// 已經轉向登錄路由因此無需重定向
} else {
$location.path('/login');
}
}
});
});
run()函數接受個參數。
initializeFn(函數)AngularJS在注入器創建后會執行這個函數。

