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

时间:2017-07-13 18:05:54

标签: angularjs dependency-injection

如果在运行函数中注入 service / factory 作为依赖,则意味着它从正常顺序执行优先级。这意味着服务/工厂在指令设置之前运行。 正常顺序是

  • app config
  • app run
  • 指令设置
  • 指令编译
  • (app控制器依赖项)
    • 服务
    • 工厂
  • app controller
  • 过滤
  • 指令链接

我的问题是为什么我们过去常常在运行功能中注入服务?有什么好处?

2 个答案:

答案 0 :(得分:2)

好处可能是 ui-router 或其他stateRouter。这是代码示例:

public/index.php

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

答案 1 :(得分:0)

来自AngularJS docs

  

运行块是Angular中与main方法最接近的东西。运行块是代码   需要运行以启动应用程序。它在所有服务完成后执行   已配置且已创建进样器。运行块通常包含很难的代码   单元测试,因此应该在隔离模块中声明,以便它们可以   在单元测试中忽略了。

互联网上提供的大多数示例都将身份验证视为其主要用途之一。