【问题标题】:How Can I Pass An Instance Of A Service To A Component Within A Library In Angular?如何将服务实例传递给 Angular 库中的组件?
【发布时间】:2019-09-06 17:42:58
【问题描述】:

我正在构建一个组件库,其中包含多个执行各种任务的共享组件。

我有一个更复杂的新需求,需要使用库中的组件从父应用程序提供的服务。当我将该服务实例传递给组件库时,库组件中唯一可用的就是属性,没有可在服务上调用的方法。

有没有办法将服务从父组件传递到子 LIBRARY 组件并访问该服务上的方法。这些方法执行多个 HTTP 请求,并希望直接传递给组件。

例如

inputSvcParam:any;
construtor(private myClass: MyClass){
 this.inputSvcParam = myClass; // This svc has multiple http request methods as well as static config properties etc.
}

<my-custom-lib-component [internalSvc]="inputSvcParam"></my-custom-lib-component>

我在库组件中记录 internalSvc 的值,实际可见的唯一值是属性,没有方法(因此无法使用 Svc 执行 HTTP)。

有谁知道我如何能够做到这一点,或者我是否必须在我的组件库中构建 Svc 并在那里使用它?

【问题讨论】:

    标签: angular angular-library


    【解决方案1】:

    您可以直接将服务实例作为输入传递给库组件。如下所示。 &lt;my-custom-lib-component [service]="myService"&gt;&lt;/my-custom-lib-component&gt;

    【讨论】:

    • 当我这样做时,没有可用的方法,只有属性。我怎样才能使这些方法可用?
    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 2017-09-03
    • 2020-05-07
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2018-10-05
    • 2017-10-11
    相关资源
    最近更新 更多