我想知道是否可以仅为应用程序的一部分配置angular2 in-memory-web-api。我希望到达已完成组件的外部端点,并在开发阶段使用in-memory-web-api组件。
我试图通过以下两种方式做到这一点:
1 - 将数据加载到main中并更改我想要到达内存中端点的组件中的XHRBackend;
main.ts
bootstrap(AppComponent, [
...
{ provide: SEED_DATA, useClass: InMemoryDataService }
]);
inDevelopmentStage.service.ts
@Component({
providers: [
{ provide: XHRBackend, useClass: InMemoryBackendService }
]
})
2 - 加载数据并更改我想要到达内存中端点的组件中的XHRBackend;
inDevelopmentStage.service.ts
@Component({
providers: [
{ provide: XHRBackend, useClass: InMemoryBackendService }, // in-mem server
{ provide: SEED_DATA, useClass: InMemoryDataService } // in-mem server data
]
})
有什么办法可以实现这个目标吗?
感谢您的帮助!
答案 0 :(得分:0)
正如filipesilva here所指出的,第二种方式应该有用。
" 哦,当然,你绝对可以做到这一点。每个组件都有自己的注入器,它可以解析供应商及其子树中的所有组件。
你的第二个例子应该有效:
@Component({
providers: [
{ provide: XHRBackend, useClass: InMemoryBackendService }, // in-mem server
{ provide: SEED_DATA, useClass: InMemoryDataService } // in-mem server data
]
})
对于该组件及其子树,XHRBackend是InMemoryBackendService而不是HTTP_PROVIDERS提供的服务。
请记住,它也适用于该子树中的任何其他组件。也许这出了什么问题? "
谢谢菲利普!