我目前正在阅读使用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.service
和module.factory
都在创建提供程序,它们是快捷方式,因此我们总是可以轻松地创建服务。
关于angularjs - $ state和$ stateProvider有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38655519/