angular run()运行块

Posted 发哥要做活神仙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular run()运行块相关的知识,希望对你有一定的参考价值。

和配置块不同,运行块在注入器创建之后被执行,它是所有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在注入器创建后会执行这个函数。

以上是关于angular run()运行块的主要内容,如果未能解决你的问题,请参考以下文章

AngularJs Run块$ stateChangeStart未被触发

NgZone/Angular2/Ionic2 TypeError:无法读取未定义的属性“运行”

在Angular5 app中的leaflet弹出窗口中调用zone.run

npm run build:s-s-r 在 Angular 8 中不起作用

第十九节——线程与同步代码块和锁

在 Angular 5 中的 ngoninit 之后如何运行函数