Phi*_*Cap 0 dependency-injection angular2-services angular
我很清楚我们如何注入服务。我们可以在模块级别或组件级别提供服务。
我希望在该服务依次注入我的组件之前向该服务注入一个特定的属性。有问题的属性取决于我的组件。
如何在 Angular 2 中实现这一点?
例子:
@Injectable()
export class MyService {
constructor(myProperty: string) {
setSomethingUsingMyProperty(myProperty)
}
}
@Component(..., {providers: [MyService] })
export class MyComponent {
constructor(myService: MyService) {
myService.doSomething()
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在上层模块中提供该属性,我认为如果我包含该@Inject指令,Angular 可以注入该属性。但是如何在组件级别实现这一点呢?
您可以通过字符串名称提供和注入,例如
@Injectable()
export class MyService {
constructor(@Inject('someName') myProperty: String) {
setSomethingUsingMyProperty(myProperty)
}
}
Run Code Online (Sandbox Code Playgroud)
@Component({...,
providers: [MyService, {provide: 'someName', useValue: 'someValue'}] })
export class MyComponent {
constructor(myService: MyService) {
myService.doSomething()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2889 次 |
| 最近记录: |