angular - 将服务从子组件传递到父组件
问题描述
所以我有一个基本组件(ListComponent)和一个父组件(Businesses2ListComponent)。这个想法是我们有多个表/类型的列表,它们都派生自 ListComponent。因此我们必须通过正确的服务。
在此示例中,我想将 BusinessService(扩展 BaseService)传递给 BaseComponent。
这是列表组件:
@Component({
selector: 'app-list',
templateUrl: './list.component.html',
styleUrls: ['./list.component.scss']
})
export class ListComponent<S extends BaseService<T, L>, T, L> implements OnInit {
constructor(private viewContainerRef: ViewContainerRef,
private domElement: ElementRef,
private ngForage: NgForage,
private route: ActivatedRoute,
private router: Router,
private injector: Injector,
private dataService: S) {
}
}
这是我的 Business2ListComponent:
@Component({
selector: 'app-businesses2-list',
templateUrl: './businesses2-list.component.html',
styleUrls: ['./businesses2-list.component.scss']
})
export class Businesses2ListComponent extends ListComponent<BusinessService, Business, BusinessList> implements OnInit {
constructor(viewContainerRef: ViewContainerRef,
domElement: ElementRef,
ngForage: NgForage,
dataService: BusinessService,
route: ActivatedRoute,
router: Router,
injector: Injector) {
super(viewContainerRef, domElement, ngForage, route, router, injector, dataService);
}
ngOnInit() {
}
}
我认为这是搞砸的最后一个论点,但我还能做些什么呢?
解决方案
当 Angular 显示问号时,它找不到您尝试注入的对象,这可能是多种原因,但一个好的起点是您的模块文件。您是否已将实例化的 BusinessService 添加到您的模块提供程序中?
推荐阅读
- presto - 从 Presto varchar 列解析 JSON 失败
- javascript - 使用 django 处理大型 jquery 数据表很慢
- typescript - 将对象文字分配给打字稿泛型类型
- html - 在中使用切换按钮
- java - 如何以所需的方式对 REST API 响应进行排序?
- xslt - 如何使用 XSLT 删除特定 xml 元素的命名空间前缀?
- c - 问题编译 libmagic 程序,magic_open,MAGIC_MIME 和 MAGIC_CHECK 未声明
- ruby-on-rails - rails activeadmin select input 给出错误数量的参数(给定 1,预期为 0)
- c - 使用 NLOPT SLSQP(基于梯度的算法)时 C 中的 NLopt nullptr 异常
- javascript - 您如何模拟在 jest/enzyme 中传递给 wrapper.instance().method 的参数?