我目前正在阅读使用AngularJS 1.4.8的基于AngularUI Router 0.2.15的应用程序。

我注意到该应用程序有时使用依赖项$state,有时使用依赖项$stateProvider

注入(inject)和使用$state$stateProvider之间有什么区别吗?

最佳答案

angularjs中有两种类型的单例实例。

一是我们一直在使用的服务实例,例如$ state。

另一个称为“提供程序”,例如$ stateProvider。

“提供者”拥有通用服务的工厂功能,并负责创建相应的服务。

换句话说,$ stateProvider创建$ state。

从 Angular 文档中:



当angular实例化一个模块时,它将首先创建提供程序,然后将运行'module.config'函数。

但是,那时尚未实例化$ state之类的服务。在完成“module.config”之后,它们会在需要时由其提供者实例化(例如注入(inject)到其他服务中)。因此,您不能将service放在module.config中。

实际上module.servicemodule.factory都在创建提供程序,它们是快捷方式,因此我们总是可以轻松地创建服务。

关于angularjs - $ state和$ stateProvider有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38655519/

10-09 22:09