如何在自定义 class Angular 中注入依赖?
How to inject dependency in custom class Angular?
我有 Angular 服务:
@Injectable({
providedIn: 'root',
})
export class Services {
public service1 = new Service1();
}
其中 class Service1
是:
export class Service1 {
public http: HttpRequests;
public repositoryModel: RepositoryModel;
constructor() {
this.repositoryModel = new RepositoryModel();
this.http = new HttpRequests(this.repositoryModel);
}
}
而class HttpRequests
是:
export class HttpRequests {
constructor(private httpClient: HttpClient, private repository: RepositoryModel) {
}
问题是 HttpRequest 取决于 private httpClient: HttpClient
所以我需要在上面传递实例:
this.http = new HttpRequests(<here>, this.repositoryModel);
怎么做?
我不想从 export class Services {}
开始的顶层折腾 httpClient 依赖
在导入数组中的模块中导入 HttpClientModule。
然后将您的服务更改为:-
export class Service1 {
public http: HttpRequests;
public repositoryModel: RepositoryModel;
constructor(private httpClient?: HttpClient) {
this.repositoryModel = new RepositoryModel();
this.http = new HttpRequests(this.httpClient, this.repositoryModel);
}
}
我有 Angular 服务:
@Injectable({
providedIn: 'root',
})
export class Services {
public service1 = new Service1();
}
其中 class Service1
是:
export class Service1 {
public http: HttpRequests;
public repositoryModel: RepositoryModel;
constructor() {
this.repositoryModel = new RepositoryModel();
this.http = new HttpRequests(this.repositoryModel);
}
}
而class HttpRequests
是:
export class HttpRequests {
constructor(private httpClient: HttpClient, private repository: RepositoryModel) {
}
问题是 HttpRequest 取决于 private httpClient: HttpClient
所以我需要在上面传递实例:
this.http = new HttpRequests(<here>, this.repositoryModel);
怎么做?
我不想从 export class Services {}
在导入数组中的模块中导入 HttpClientModule。
然后将您的服务更改为:-
export class Service1 {
public http: HttpRequests;
public repositoryModel: RepositoryModel;
constructor(private httpClient?: HttpClient) {
this.repositoryModel = new RepositoryModel();
this.http = new HttpRequests(this.httpClient, this.repositoryModel);
}
}