小编Sim*_*lor的帖子

有没有办法根据角度 2 中的路由注入不同的服务?

我对 Angular 2 及其依赖注入能力有点陌生,但还没有找到一种简单的方法来基于路由更改组件依赖。

IE 给定一个接受服务的组件。

MyReusableComponent {
   constructor(private service: ServiceIWantToChange){}
}
Run Code Online (Sandbox Code Playgroud)

鉴于我在 Web 应用程序的不同部分添加了一个新路由,该路由将重用该组件。

我想做这样的事情:NewAreaRoutingModule

{ 
   path: "newRoute",
   component: MyReusableComponent,
    ** my made up provider area ** -providers: [{provide: 
      ServiceIWantToChange, useClass: MyServiceWithChanges}]
}
Run Code Online (Sandbox Code Playgroud)

这就是我想到的一种处理位置敏感依赖项的方法。

我以为我可以提供组件的覆盖实现,为可重用组件提供新的依赖,但我希望只更改路由中的依赖项。

我一直在围绕解析器等进行研究,但这些似乎更多地用于提供数据。我还注意到有人注入了注入器并进行了 if 检查以获取正确的组件。看到了几种不同的方式。我确信我在路由和 DI 方面遗漏了一些东西,但我找不到任何简单的东西。我知道有变通办法,但希望找到一个更优雅的解决方案,只是想知道我想要做什么甚至是可能的。

谢谢!

以下是用例详细信息,以防我在一般情况下遇到这个错误......在系统的一个区域中,我想使用一项服务,该服务命中服务器上的一个版本的其余端点,而在我想要的系统的另一部分重用完全相同的组件,但让它将其请求发送到一组不同的端点。

routing dependency-injection angular2-routing angular

9
推荐指数
1
解决办法
3829
查看次数