加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

anglejs – 角度2通过服务构造函数的参数

发布时间:2020-12-17 07:44:52 所属栏目:安全 来源:网络整理
导读:我们假设我有这个Angular 2服务: @Injectable()class Demo { constructor(private instanceSpecificString: string) { }} 请注意,它的构造函数接受一个特定于实例的字符串.我的意思是我想多次实例化这个服务,每次实例化时,我想根据服务被实例化的上下文传递
我们假设我有这个Angular 2服务:
@Injectable()
class Demo {
    constructor(private instanceSpecificString: string) {
    }
}

请注意,它的构造函数接受一个特定于实例的字符串.我的意思是我想多次实例化这个服务,每次实例化时,我想根据服务被实例化的上下文传递一个不同的字符串.

我怎么做?

附:使用字符串作为示例,但该参数可以容易地是类型号,或布尔型甚至某种配置对象.

传递给您的服务的值将由实例化的注射器决定.您可能可以在其中一个组件定义中执行此操作:
@Component({
    ...
    providers: [
        provide(string,{useValue: "someSpecificValue"})
    ]
})

但是,这是一个问题,您正在为字符串令牌定义提供程序,并可能导致可维护性问题.

为您的服务定义一些配置模型可能是更好的模式:

class DemoConfig {
    instanceSpecificString: string;
}

然后,您可以创建一个传递给您的服务的实例.

let config = { instanceSpecificString: "someSpecificValue" }

@Component({
    ...
    providers: [
        provide(DemoConfig,{useExisting: config})
    ]
})

希望这是有帮助的.我没有尝试过这个;我在应用程序中使用的服务是单身人士.这是我使用的参考:

https://angular.io/docs/ts/latest/api/core/index/provide-function.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读