.config,.run,AppCtrl - 放置路线的位置?

时间:2013-08-08 10:23:20

标签: angularjs angularjs-scope angularjs-routing

我想了解AngularJS中.config.run函数之间的区别。我使用.config来设置路线,但我确实有一些$on用于观察路线更改开始和成功事件。

然后我将部分代码移到.run,因为我在.config中遇到了一些依赖注入问题。

我最后将其中的部分内容移至我CommonAppController设置的<body>

我还有2个.config,它似乎运行正常,但这肯定是不对的?

任何人都可以对使用哪种方法有所了解吗?

2 个答案:

答案 0 :(得分:74)

配置块和运行块在应用程序引导程序的不同点执行,并且可以使用不同的注入本地。以下是您在AngularJS documentation中可以找到的内容摘要。

配置块(在module.config()注册)在提供程序注册期间执行,并且只能注入提供程序和常量(请参阅module.provider()module.constant())。这通常是配置应用程序范围内容的地方,例如$routeProvider。在创建服务之前需要配置的东西。

在注入器具有所有提供程序之后执行运行块(使用module.run()注册)。现在,可以注入所有实例和常量。这通常是您配置服务,$rootScope,事件等的地方。

您可以拥有多个,并按照它们注册到模块的顺序执行。例如,有些人喜欢在每组控制器之前注册一个配置块来注册到这些控制器的路由。

答案 1 :(得分:-2)

在提供程序注册和配置阶段执行.config块。它&#39;模块级块。

在配置块之后执行.run块。它曾用于注入服务和常量。