内部服务中的角负载外部类

时间:2018-06-28 07:32:40

标签: angular service

我正在尝试在我的角度服务内部加载一个外部打字稿类。我有一项名为anyservice的服务。我正在一个文件夹中创建一个导出类,我想在我的服务中获得一个函数,因为我的类代码是:

export class Functions {
testy() {
    alert("I am testy");
 }
 }

我正在使用以下方法在我的服务中调用此Functions类:

 import{Functions} from '../data/f'

但是当我尝试使用以下方法获取服务时,

 constructor(private f: Functions)

我遇到错误:

 ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[Functions]: 

StaticInjectorError(平台:核心)[功能]:

如何在服务中这样调用函数:

 test() {
  this.f.testy();
 }

访问服务内部外部类的最佳方法是什么

1 个答案:

答案 0 :(得分:0)

最好将Injectable装饰器添加到类中。但是,如果您不能这样做(也许这是第三方库中的一个类),只要您在模块的提供程序中声明它,就仍然可以将其注入到组件/服务中。

@NgModule({
  imports:      [ BrowserModule, FormsModule ],
  declarations: [ AppComponent, HelloComponent ],
  bootstrap:    [ AppComponent ],
  providers: [Functions]
})

注意:如果您的Injectable类需要在其自己的构造函数中注入其他类,则需要Functions装饰器。

Stackblitz demo