gpt4 book ai didi

javascript - 将参数传递给 Angular 中 @Injectable 的构造函数?

转载 作者:行者123 更新时间:2023-12-03 02:23:49 25 4
gpt4 key购买 nike

假设我们有一个像这样的@Injectable类:

interface IServiceConfig {
boo: string;
foo: string;
}

@Injectable()
class Service {
boo: string = "boo";
foo: string = "foo";

constructor(IServiceConfig isc) {
Object.assign(this, isc);
}
}

是否可以将 IServiceConfig 实例传递给 Service 的构造函数,同时仍然允许 Angular 创建和注入(inject) Service 实例?

在 Angular 创建服务实例之前,是否有不同的方法来配置服务?

最佳答案

这尚未经过测试,但您应该能够这样做:

import { Injectable, Inject, Optional } from '@angular/core';

interface IServiceConfig {
boo: string;
foo: string;
}

@Injectable()
class Service {
boo: string = "boo";
foo: string = "foo";

constructor(@Inject('isc') @Optional() public isc?: IServiceConfig ) {
Object.assign(this, isc);
}
}

在您的提供程序中(例如在 app.module 中):

providers: [
{provide: 'isc', useValue: {boo: 'hoo', foo: 'bar'},
...

关于javascript - 将参数传递给 Angular 中 @Injectable 的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49043720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com