Angular 在角度参数中插入依赖项的正确方法是什么
我去年才开始学习angular,我偶然发现了angular依赖注入。情况是我需要注入依赖项,需要一些参数来实例化。目前我是这样做的: some-dependency.service.tsAngular 在角度参数中插入依赖项的正确方法是什么,angular,typescript,dependency-injection,Angular,Typescript,Dependency Injection,我去年才开始学习angular,我偶然发现了angular依赖注入。情况是我需要注入依赖项,需要一些参数来实例化。目前我是这样做的: some-dependency.service.ts import { Injectable } from '@angular/core'; import { ConfigService } from 'app/services/config.service'; import { Client } from 'some-dependency'; @Injecta
import { Injectable } from '@angular/core';
import { ConfigService } from 'app/services/config.service';
import { Client } from 'some-dependency';
@Injectable({
providedIn: 'root',
useFactory: (config:ConfigService) => new Client({
host:config.clientURL, maxRetries: config.maxRetry
}),
deps: [ConfigService]
})
export class SomeDependencyService extends Client {
}
import { Injectable } from '@angular/core';
import { SomeDependencyService } from 'app/services/some-dependency.service';
@Injectable({
providedIn: 'root'
})
export class SomeService {
constructor( private deps: SomeDependencyService ) {}
getSomething() {
return this.deps.get('something');
}
}
另一个服务
import { Injectable } from '@angular/core';
import { ConfigService } from 'app/services/config.service';
import { Client } from 'some-dependency';
@Injectable({
providedIn: 'root',
useFactory: (config:ConfigService) => new Client({
host:config.clientURL, maxRetries: config.maxRetry
}),
deps: [ConfigService]
})
export class SomeDependencyService extends Client {
}
import { Injectable } from '@angular/core';
import { SomeDependencyService } from 'app/services/some-dependency.service';
@Injectable({
providedIn: 'root'
})
export class SomeService {
constructor( private deps: SomeDependencyService ) {}
getSomething() {
return this.deps.get('something');
}
}
代码运行得很好,我可以获得客户端
实例,而无需在另一个服务中实例化它。ts
没有问题,而且我可以轻松地模拟它进行单元测试,但我不确定这是否是使用参数进行DI的正确方法,我也不确定这段代码是否会生成任何意外行为
虽然我可以在需要依赖关系的服务中导入依赖关系,并在本地实例化依赖关系,但如果我有很多需要依赖关系的服务(和组件),这将非常烦人
谢谢为什么不将ConfigService注入到某个DependencyService的构造函数中?为什么不将ConfigService注入到某个DependencyService的构造函数中?