是否可以将提供者注入AngularJs中的服务?

Pav*_*tin 2 angularjs

我正在为http查询实现自定义拦截器.它需要访问$ httpProvider中定义的默认标头.

是否有可能将$ httpProvider(不是$ http的实例,因为这会导致循环引用)作为对拦截器工厂的依赖注入?

smn*_*brv 9

你不能.

提供程序是返回工厂/服务/函数的函数的对象,它们您的工厂创建之前运行.

事实上,它是这样的:

  1. 创建应用
  2. 附加/定义您的服务
  3. 配置步骤(您可以注入常量和提供程序)
  4. 运行步骤(您可以注入其他所有内容),最后创建实例,并且您的工厂实例无法更改配置,因为它已经完成并且$http已经创建并且是不可变的.

简而言之:在.config()生成所有实例之前,您只能在引导块中注入提供程序.