Angular2 Injector - 动态选择服务实现

时间:2017-07-19 06:53:27

标签: angular angular-services

为了更好地测试和分离前端/后端开发,我们目前正在尝试找到一种在devMode中提供模拟服务实现的动态方法。

我们的想法是在您的环境中指定哪些服务应该被模拟,然后让注入器返回基于此的实际或模拟实现。

现在的问题是,是否可以为注入器提供的每个服务动态执行此操作,或者是否必须为每个服务使用单独的工厂(执行相同的操作)?

// pseudo code
onRequestProviderFor(serviceName)
{
  if(environment.mockTheseServices.contains(serviceName))
  {
    return new "Mock"+serviceName.ts
  }
  else
  {
    return new serviceName.ts
  }
}

这可能吗?我们可以使用注入器进程中的钩子(在devMode中)吗?

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用https://github.com/typicode/json-server等内容创建单独的模拟服务器?

我认为这会使您的项目代码更加清晰,不会在同一代码库中包含模拟服务。