在Angular 9中,可以使用@Inject
装饰器将动态参数注入到服务的构造函数中。下面是一个示例:
DynamicParamService
的服务:import { Injectable, Inject } from '@angular/core';
@Injectable()
export class DynamicParamService {
constructor(@Inject('dynamicParam') private dynamicParam: any) { }
getDynamicParam(): any {
return this.dynamicParam;
}
}
import { NgModule } from '@angular/core';
import { DynamicParamService } from './dynamic-param.service';
@NgModule({
providers: [
{ provide: 'dynamicParam', useValue: 'Dynamic Parameter Value' }
]
})
export class AppModule { }
DynamicParamService
:import { Component } from '@angular/core';
import { DynamicParamService } from './dynamic-param.service';
@Component({
selector: 'app-root',
template: `
{{ dynamicParam }}
`
})
export class AppComponent {
dynamicParam: any;
constructor(private dynamicParamService: DynamicParamService) {
this.dynamicParam = this.dynamicParamService.getDynamicParam();
}
}
在这个示例中,我们使用@Inject
装饰器将名为dynamicParam
的动态参数注入到DynamicParamService
的构造函数中。在模块中,我们使用provide
属性提供了该动态参数的值。最后,在组件中,我们通过DynamicParamService
获取了动态参数的值,并在模板中显示出来。
请注意,动态参数的值可以是任何类型,这里只是一个示例使用了字符串类型的动态参数。