在Angular中,参数化提供者注入是指在注入服务时,可以通过提供参数来动态配置服务的行为。以下是一个示例解决方案:
// 参数化服务
@Injectable()
export class ParamService {
constructor(private param: string) {}
getParam(): string {
return this.param;
}
}
// 参数提供者
export const PARAM_TOKEN = new InjectionToken('param');
export const paramProvider = {
provide: PARAM_TOKEN,
useValue: 'value' // 设置默认参数值
};
import { PARAM_TOKEN, paramProvider } from './param.provider';
@Component({
selector: 'app-example',
template: '{{ param }}
',
providers: [paramProvider]
})
export class ExampleComponent {
param: string;
constructor(@Inject(PARAM_TOKEN) private paramService: ParamService) {
this.param = this.paramService.getParam();
}
}
在上面的示例中,我们创建了一个带有参数的服务ParamService
,并在构造函数中接受一个参数。然后,我们创建了一个参数提供者paramProvider
,使用InjectionToken
来定义参数的token。最后,在使用参数化服务的组件中,我们通过@Inject(PARAM_TOKEN)
注入参数化服务,并将参数传递给ParamService
的构造函数。
这样,我们就可以在模块或组件中使用参数化提供者注入来动态配置服务的行为。