Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS中,将服务注入run方法而不是控制器的主要用途是什么?_Angularjs_Dependency Injection - Fatal编程技术网

在AngularJS中,将服务注入run方法而不是控制器的主要用途是什么?

在AngularJS中,将服务注入run方法而不是控制器的主要用途是什么?,angularjs,dependency-injection,Angularjs,Dependency Injection,如果将服务/工厂作为依赖项注入到运行函数中,则表示它按照正常顺序执行优先级。这意味着服务/工厂在指令设置之前运行。 正常秩序是 应用程序配置 应用程序运行 指令设置 指令编译 (应用程序控制器依赖项) 服务 工厂 应用程序控制器 滤器 指令链接 我的问题是为什么我们要在运行函数中注入服务?好处是什么?用户界面路由器或其他stateRouter可以带来好处。下面是代码示例: .run(function ($rootScope, krozAuthService) { $rootSco

如果将服务/工厂作为依赖项注入到运行函数中,则表示它按照正常顺序执行优先级。这意味着服务/工厂在指令设置之前运行。 正常秩序是

  • 应用程序配置
  • 应用程序运行
  • 指令设置
  • 指令编译
  • (应用程序控制器依赖项)
    • 服务
    • 工厂
  • 应用程序控制器
  • 滤器
  • 指令链接

我的问题是为什么我们要在运行函数中注入服务?好处是什么?

用户界面路由器或其他stateRouter可以带来好处。下面是代码示例:

.run(function ($rootScope, krozAuthService) {
    $rootScope.$on('$stateChangeStart',  function (e, toState, toParams, fromState, fromParams){

        if (krozAuthService.roleAccess[state] &&
            krozAuthService.roleAccess[state] === 'DISABLED'){
          e.preventDefault();
          return;
        }

这是我编写的应用程序的身份验证部分。krozAuth是用于身份验证的服务,它具有有关当前登录用户角色的信息。因此,登录的用户将无法进入状态,如果用户没有权限,HTML页面将不会加载。

用户界面路由器或其他stateRouter可能会带来好处。下面是代码示例:

.run(function ($rootScope, krozAuthService) {
    $rootScope.$on('$stateChangeStart',  function (e, toState, toParams, fromState, fromParams){

        if (krozAuthService.roleAccess[state] &&
            krozAuthService.roleAccess[state] === 'DISABLED'){
          e.preventDefault();
          return;
        }
这是我编写的应用程序的身份验证部分。krozAuth是用于身份验证的服务,它具有有关当前登录用户角色的信息。因此,登录的用户将无法进入该状态,并且如果用户没有权限,则不会加载HTML页面

运行块在角度上与主方法最接近。run块是 需要运行以启动应用程序。它是在完成所有服务后执行的 已配置并已创建喷油器。运行块通常包含硬代码 要进行单元测试,因此应在隔离模块中声明,以便 在单元测试中被忽略

internet上的大多数示例都提到身份验证是其主要用途之一。

来源:

运行块在角度上与主方法最接近。run块是 需要运行以启动应用程序。它是在完成所有服务后执行的 已配置并已创建喷油器。运行块通常包含硬代码 要进行单元测试,因此应在隔离模块中声明,以便 在单元测试中被忽略


internet上提供的大多数示例都提到身份验证是其主要用途之一。

Dude,我想问的是run方法的好处,而不是它的特性。这些特性在特性中有描述。您选择的答案已经过时,不再是进行授权控制的最佳方式@阿鲁洛克。在控制器和运行方法中注入服务有什么区别?@tiagodwsA控制器连接到组件或指令,并且仅在实例化其中一个组件或指令时执行。如果导航到某个状态,则仅会执行该状态视图中的相应控制器。而是在创建模块时执行run方法。例如,如果您需要获取模块所需的所有翻译,并且您有相应的服务,那么您不能在.config方法中进行转换,因为您仍然没有实例注入(服务),而在控制器中进行转换将创建与相应视图的依赖关系@ArulDude,我想问的是run方法的优点,而不是它的特性。这些特性在特性中有描述。您选择的答案已经过时,不再是进行授权控制的最佳方式@阿鲁洛克。在控制器和运行方法中注入服务有什么区别?@tiagodwsA控制器连接到组件或指令,并且仅在实例化其中一个组件或指令时执行。如果导航到某个状态,则仅会执行该状态视图中的相应控制器。而是在创建模块时执行run方法。例如,如果您需要获取模块所需的所有翻译,并且您有相应的服务,那么您不能在.config方法中进行转换,因为您仍然没有实例注入(服务),而在控制器中进行转换将创建与相应视图的依赖关系@海芋