我知道该run
方法何时被调用(在创建注入器之后)并且您只能注入实例,但我想知道,您通常会在此方法中做什么/想要什么?这种方法的意义何在?
文档谈到了“kickstart”,这是什么意思?
我知道该run
方法何时被调用(在创建注入器之后)并且您只能注入实例,但我想知道,您通常会在此方法中做什么/想要什么?这种方法的意义何在?
文档谈到了“kickstart”,这是什么意思?
Angular 提供了两个函数,可以让你在模块初始化期间执行代码。首先,调用初始化的中途config
。然后,一旦 Angular 完成初始化,它就会调用run
. 所以run
经常与许多语言中提供的 main 函数进行比较,因为它是启动事物的函数(kickoff 的意思是“开始”或“开始运行”)。
因此,它只run
被调用一次并在你的代码的其余部分之前执行。(除了 after config
)不像config
它是在创建注入器之后调用的,正如你所指出的,所以你可以将任何服务/提供者注入其中 - 并调用它们提供的函数。
请注意,因为run
被这么早调用,所以除了 rootScope 之外没有其他范围,所以你不能注入$scope
但你可以注入$rootScope
。因此,一些用于run
设置全局变量$rootscope
(无论好坏......)
从http://docs.angularjs.org/guide/module:
- 配置块- 在提供者注册和配置阶段执行。只有提供者和常量可以注入到配置块中。这是为了防止在完全配置之前意外实例化服务。
- 运行块- 在创建注入器后执行并用于启动应用程序。只有实例和常量可以注入运行块。这是为了防止在应用程序运行时进行进一步的系统配置。
由于run
在其他任何事情之前调用它,它有时用于身份验证。这是一个这样做的示例-您将看到config
用于设置路由,然后进行run
一些初始化,包括创建watch
必须在初始化期间建立的:http: //arthur.gonigberg.com/2013/06/29/angularjs-基于角色的身份验证/
因此,run
orconfig
适合一次性初始化,尤其是当您希望确保在任何其他代码运行之前进行初始化时。