如何将服务实例传递给Angular库中的组件?

时间:2019-07-31 15:51:19

标签: angular angular-library

我正在构建一个组件库,该组件库具有执行各种任务的多个共享组件。

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

是否有一种方法可以将服务从父组件传递到子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并在那里使用它?

1 个答案:

答案 0 :(得分:0)

您可以直接将服务实例作为输入传递给库组件。像下面这样。 $.each(json, function (key, entry) { dropdown.append($('<option></option>').attr('value', entry).text(key)); })