angular - 服务内部的角负载外部类
问题描述
我正在尝试在我的角度服务中加载一个外部打字稿类。我有一个名为 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();
}
访问服务内部的外部类的最佳方法是什么
解决方案
如果您可以将Injectable
装饰器添加到您的课程中,那就更好了。但是,如果你不能(也许它是来自 3rd 方库的类),你仍然可以将它注入到你的组件/服务中,只要你在模块的提供者中声明它
@NgModule({
imports: [ BrowserModule, FormsModule ],
declarations: [ AppComponent, HelloComponent ],
bootstrap: [ AppComponent ],
providers: [Functions]
})
注意:如果该类需要将其他一些类注入其自己的构造函数中,则该类Injectable
将需要装饰器。Functions
推荐阅读
- reactjs - useEffect 导致无限循环
- python - 使用一致的小时标记在 python 中绘制时间序列
- javascript - 迭代深度优先搜索以找到 JavaScript 中的最长路径?
- python - 如何使用python中的变量更新sqlite3中的查询?
- javascript - 下载在 React konva JS 视频中不起作用
- php - 将 file_get_contents 转换为 cURL
- java - Spring Boot + Spring Data Rest Repositories 中使用 @CrossOrigin 注释的 CORS 问题
- php - 如何以相同的名称托管多个网页,例如。本地主机上的 example.io 以便向不同的用户显示不同的页面?
- python - 将 unicode 表情符号转换为我可以与 chromedriver 一起使用的格式
- python - 使用手动标记的真实值进行聚类评估