$ state和$ stateProvider有什么区别?

时间:2016-07-29 09:41:08

标签: angularjs angular-ui-router

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

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

注入和使用$state$stateProvider

之间是否存在任何差异?

1 个答案:

答案 0 :(得分:1)

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

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

另一个被称为'提供者',就像$ stateProvider。

'Providers'持有公共服务的工厂功能,负责创建相应的服务。

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

来自角度文档:

  

Angular 服务是由服务创建的单例对象   工厂即可。这些服务工厂是其中的功能   转弯,由服务提供商创建。 服务   提供者是构造函数。实例化时,他们必须   包含名为$get的属性,该属性包含服务   工厂功能。

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

但是,当时没有实例化$ state等服务。在'module.config'完成后,它们将在需要时(例如注入其他服务)由其提供者实例化。因此,您无法在service中添加module.config

module.servicemodule.factory都在创建提供商。它们是快捷方式,因此我们可以随时轻松创建服务。