我目前正在阅读使用AngularJS 1.4.8
的基于AngularUI Router 0.2.15
的应用程序。
我注意到此应用程序有时使用依赖项$state
,有时使用依赖项$stateProvider
。
注入和使用$state
和$stateProvider
答案 0 :(得分:1)
angularjs中有两种类型的单例实例。
一个是我们一直使用的服务实例,比如$ state。
另一个被称为'提供者',就像$ stateProvider。
'Providers'持有公共服务的工厂功能,负责创建相应的服务。
换句话说,$ stateProvider会创建$ state。
来自角度文档:
Angular 服务是由服务创建的单例对象 工厂即可。这些服务工厂是其中的功能 转弯,由服务提供商创建。 服务 提供者是构造函数。实例化时,他们必须 包含名为
$get
的属性,该属性包含服务 工厂功能。
当angular实例化模块时,它将首先创建提供程序,然后它将运行'module.config'函数。
但是,当时没有实例化$ state等服务。在'module.config'完成后,它们将在需要时(例如注入其他服务)由其提供者实例化。因此,您无法在service
中添加module.config
。
module.service
和module.factory
都在创建提供商。它们是快捷方式,因此我们可以随时轻松创建服务。