複数の角度プロジェクトがあり、各プロジェクトには同じ API を呼び出すサービスがあります。リクエストがどのアプリから送信されたかを判断するために、リクエストにヘッダーを追加しています。だから私はヘッダー値を設定するための基本サービスクラスを持つライブラリを作成しようとしています
@Injectable({ providedIn: "root" })
export class AppbaseService {
scope: string;
constructor(@Inject(forwardRef(()=>'scope')) scope:string) {
this.scope = scope;
}
getScope():string{
return this.scope;
}
}
そして、その動的な値をヘッダーとしてリクエストに追加するhttp インターセプター
@Injectable()
export class ScopeInterceptor implements HttpInterceptor {
constructor(private appBaseService: AppbaseService) {
}
intercept(req: HttpRequest<any>,
next: HttpHandler): Observable<HttpEvent<any>> {
const clonedRequest = req.clone({
headers: req.headers.append(
'Scope',
this.appBaseService.scope
)
});
return next.handle(clonedRequest);
}
}
最後に、動的な値をプロバイダに設定するファクトリ
export function appValueFactory(baseService: AppbaseService) {
console.log(baseService);
return baseService.getScope();
}
しかし、モジュールでプロバイダーを設定する方法がわかりませんでした。これはあまり役に立ちません。
Uncaught Error: Can't resolve all parameters for qI: (?).
at Jt (main.js:1)
at e._getDependenciesMetadata (main.js:1)
at e._getFactoryMetadata (main.js:1)
at e.getProviderMetadata (main.js:1)
at main.js:1
at Array.forEach (<anonymous>)
at e._getProvidersMetadata (main.js:1)
at main.js:1
at Array.forEach (<anonymous>)
at e._getProvidersMetadata (main.js:1)
誰かが私を正しい方向に向けることができますか?
ありがとうございました。