首页 > 解决方案 > 服务内部的角负载外部类

问题描述

我正在尝试在我的角度服务中加载一个外部打字稿类。我有一个名为 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();
 }

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

标签: angularservice

解决方案


如果您可以将Injectable装饰器添加到您的课程中,那就更好了。但是,如果你不能(也许它是来自 3rd 方库的类),你仍然可以将它注入到你的组件/服务中,只要你在模块的提供者中声明它

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

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

Stackblitz 演示


推荐阅读