3

我知道该run方法何时被调用(在创建注入器之后)并且您只能注入实例,但我想知道,您通常会在此方法中做什么/想要什么?这种方法的意义何在?

文档谈到了“kickstart”,这是什么意思?

4

1 回答 1

2

Angular 提供了两个函数,可以让你在模块初始化期间执行代码。首先,调用初始化的中途config。然后,一旦 Angular 完成初始化,它就会调用run. 所以run经常与许多语言中提供的 main 函数进行比较,因为它是启动事物的函数(kickoff 的意思是“开始”或“开始运行”)。

因此,它只run被调用一次并在你的代码的其余部分之前执行。(除了 after config)不像config它是在创建注入器之后调用的,正如你所指出的,所以你可以将任何服务/提供者注入其中 - 并调用它们提供的函数。

请注意,因为run被这么早调用,所以除了 rootScope 之外没有其他范围,所以你不能注入$scope但你可以注入$rootScope。因此,一些用于run设置全局变量$rootscope(无论好坏......)

http://docs.angularjs.org/guide/module

  1. 配置块- 在提供者注册和配置阶段执行。只有提供者和常量可以注入到配置块中。这是为了防止在完全配置之前意外实例化服务。
  2. 运行块- 在创建注入器后执行并用于启动应用程序。只有实例和常量可以注入运行块。这是为了防止在应用程序运行时进行进一步的系统配置。

由于run在其他任何事情之前调用它,它有时用于身份验证。这是一个这样做的示例-您将看到config用于设置路由,然后进行run一些初始化,包括创建watch必须在初始化期间建立的:http: //arthur.gonigberg.com/2013/06/29/angularjs-基于角色的身份验证/

因此,runorconfig适合一次性初始化,尤其是当您希望确保在任何其他代码运行之前进行初始化时。

于 2013-11-14T15:55:12.047 回答