我刚开始在我的项目中使用NgRx Data,我搜索了几个小时,无法找到解决我所面临的问题的方法。
我试图通过这样使用DefaultDataServiceConfig来更改默认的调用根:
app.module.ts
export const defaultDataServiceConfig: DefaultDataServiceConfig = {
root: `${environment.apiUrl}/`,
};
@NgModel({
...
providers: [
{
provide: DefaultDataServiceConfig
useValue: defaultDataServiceConfig
}
]
});environment.ts
export const environment = {
...
apiUrl: 'https://my-api.com/v1',
};但是,调用将转到localhost http://localhost:3000/client/list,而不是转到my-api.com https://my-api.com/v1/client/list。
我遗漏了什么吗?我找不到任何例子,ngrx.io文档是一个糟糕的例子。
发布于 2020-09-21 21:06:08
我也面临着同样的问题。
检查DefaultDataService医生,它的构造函数中的第四个参数是可选的,默认情况下是未定义的。扩展该类时,创建自己的服务时,传递配置参数,如下所示:
@Injectable()
export class EmployersDataService extends DefaultDataService<Employer> {
constructor(
http: HttpClient,
httpUrlGenerator: HttpUrlGenerator,
config: DefaultDataServiceConfig
) {
super('Employer', http, httpUrlGenerator, config);
}
}然后,在app.module.ts中提供的app.module.ts将工作。
发布于 2020-05-11 15:38:01
您应该在导入EntityDataModule的同一级别导入它。
@NgModule({
declarations: [
DataComponent,
],
imports: [
CommonModule,
EntityDataModule.forRoot(entityConfig)
],
providers: [
{
provide: DefaultDataServiceConfig,
useValue: {
root: environment.apiUrl,
},
}
],
exports: [
DataComponent,
],
})如果出于任何原因,它不适合您-您可以提供您自己的HttpUrlGenerator,它解决了每个实体的urls。
export abstract class HttpUrlGenerator {
abstract entityResource(entityName: string, root: string): string;
abstract collectionResource(entityName: string, root: string): string;
abstract registerHttpResourceUrls(
entityHttpResourceUrls?: EntityHttpResourceUrls
): void;
}https://stackoverflow.com/questions/61732261
复制相似问题