$ state和$ stateProvider有什么区别?

Abd*_*ull 6 angularjs angular-ui-router

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

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

是否有注射,并与工作之间的差异$state$stateProvider

MMh*_*ter 1

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

一种是我们经常使用的服务实例,例如 $state。

另一种称为“提供者”,如 $stateProvider。

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

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

从角度文档:

Angular服务是由服务工厂创建的单例对象。这些服务工厂是由服务提供商创建的功能。服务提供者是构造函数。实例化时,它们必须包含一个名为 的属性$get,该属性保存服务工厂函数。

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

然而,像 $state 这样的服务到那时还没有实例化。在“module.config”完成后,它们将在需要时由其提供者实例化(例如注入其他服务)。所以你不能把 a 放入servicea 中module.config

事实上,两者module.service都在创建提供者。它们是快捷方式,因此我们始终可以轻松地创建服务。module.factory