在config方法之外推送httpProvider拦截器

时间:2015-03-23 17:12:35

标签: angularjs

由于在这里解释没有意义的原因,我需要在config方法之外推送一个拦截器。更具体地说,在模块的运行方法中。所以我创建了对httpProvider的全局引用,然后在run方法中我推送了拦截器。但拦截器的responseError回调从未执行过。如果我在config方法中放入相同的行,它就可以工作。在这两种情况下,我都使用引用来更改httpProvider。

有没有人对此有任何线索?如何在config方法之外推送httpProvider拦截器?

1 个答案:

答案 0 :(得分:0)

我们知道所有服务/工厂都是单件对象。它们只被实例化一次。所以我们需要在服务实例化之前配置拦截器。

配置功能对于在实际创建提供程序之前配置提供程序非常有用。 config方法在角度app boostraps之后运行。这是第一个运行的方法。因此,如果你在config中插入拦截器,它将在创建服务之前对其进行修改。

但是run方法稍后会执行。在已经创建了在模块中注册的对象实例之后,run函数可用于执行任何类型的初始化。这就是为什么你找不到它的原因。