代码之家  ›  专栏  ›  技术社区  ›  Pritam Bohra

仅在appmodule中使用http_拦截器

  •  0
  • Pritam Bohra  · 技术社区  · 6 年前

    我正在尝试在我的Angular6应用程序中实现延迟加载,我的所有http调用都在 FeatureModule (懒洋洋的),但我还是要加上 HttpClientModule 在我的 AppModule 而不是在 功能模块 是的。不明白为什么。 另外,当我在 功能模块 ,他们没有拦截任何请求。我得把它加到 应用模块 只是(我想,是因为 HttpClient模块 是在 应用模块 )中。

    我想知道为什么会这样?为什么我们不能 HttpClient模块 HTTP_INTERCEPTORS 只有在 功能模块 而不是在 应用模块 我不做任何 http 电话?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Nico    5 年前

    来回答这个问题。

    仅添加 HttpClientModule 一次放置在根级别。没有其他模块,无论它们是如何导入的 lazy eager 即使是图书馆的。确保它没有导入 HttpClient模块

    但是,您可以跨模块使用http_拦截器提供程序,而不会出现问题。

    当您导入 HttpClient模块 跨模块,然后将其重新导入到另一个模块中,它可以有效地重置该模块的http_拦截器的提供程序。 这是一种故意的行为。如果您需要有关讨论的更多信息,可以查看: https://github.com/angular/angular/issues/20575