angular - 为什么提供者在组件中不起作用?
问题描述
我提供PAGINATION_INTERAGENCY
使用工厂:
export const PAGINATION_INTERAGENCY = new InjectionToken<any>('PAGINATION_INTERAGENCY');
providers: [
{
provide: PAGINATION_INTERAGENCY,
useFactory: () =>
new PaginationService({
id: 'serverPagination',
offset: 0,
limit: 20,
sortByDefault: '+docid',
pageSizeOptions: [10, 20, 100],
currentPage: 1,
itemsPerPage: 20,
}),
},
InteragencyCooperationService,
InteragencyCooperationRepository,
],
然后在组件构造函数中我使用提供者:
constructor(
@Inject(PAGINATION_INTERAGENCY) private paginationService: PaginationService) {}
首次加载模块时,出现此错误:
ERROR NullInjectorError: R3InjectorError(InteragencyModule)[PaginationService -> PaginationService -> PaginationService -> PaginationService]:
NullInjectorError: No provider for PaginationService!
如何解决?
解决方案
你的注射是错误的。看这里:工厂-供应商-usefactory | 角度.io
可能这样的事情会起作用:
{
provide: PAGINATION_INTERAGENCY,
useFactory: PaginationService,
deps: [/*your dependencies goes here*/]
}
推荐阅读
- three.js - 我想将此垂直图像滑块更改为水平滑块
- c++ - 我们可以在c ++中将整数添加到数组中吗
- swift - Element 的 Swift 通用集合无法转换为 Any 的集合
- angular - 如何实现 Angular 中的图标更改场景?
- ios - 我的应用仅在 iOS 13+ 上的 Testflight 中崩溃
- reactjs - 如何在文本字段中按回车键时停止反应引导/@material ui 在 url 中插入获取参数
- javascript - Onload 和 onmouseout 事件的 Javascript 错误
- ios - Objective-C 如何从其他地方将对象添加到 NSMutableArray?
- javascript - 反应按钮 OnHover 更改数组内的图像
- c# - 在 ASP .Net 的一个 zip 文件夹中下载多个 csv 文件