在我解释我的问题之前,这里是设置的背景。
核心是AG网格和 ag-grid-angular 组件。我在其上构建 ag-grid-base 组件 它处理诸如过滤器分页等基本功能。然后,我有一个名为 filter-grid 的组件,该组件向网格中添加了一些动态设置,例如加载列列表等。 然后,我使用这个组件来设置不同网格的实例以显示数据。网格的一项功能是以模式形式查看和/或编辑数据。我实现了一个事件发射器,以使调用对话框的组件知道由于更改而需要何时重新加载数据。
数据重载功能是我的ag-grid-component的一部分,我可以从我的filter-grid组件中调用它,但是当我尝试从我的自定义网格中调用filter-grid上的函数时,我得到了一堆错误,例如
BucketGridComponent_Host.ngfactory.js? [sm]:1错误错误: StaticInjectorError(AppModule)[BucketGridComponent-> FilterGridComponent]:StaticInjectorError(平台: 核心)[BucketGridComponent-> FilterGridComponent]: NullInjectorError:没有FilterGridComponent的提供者!
不确定我缺少什么..
答案 0 :(得分:0)
我认为这是重复的
也许您的BucketGridModule已在导入时添加到app.module.ts
。
因此,您需要将导入和导出(两者)FilterGridModule添加到BucketGridModule.component.ts
但是您的FilterGridComponent
没有模块,您需要将该组件添加(declarations
)到BucketGridModule
中。如下。
BucketGridModule.component.ts
import { FilterGridComponent} from './{I don't know where it is}/FilterGridComponent';
@NgModule({
imports: [
...
FilterGridComponent
],
export: [
...
FilterGridComponent
],
declarations: [
FilterGridComponent
],
})
app.component.ts
import { BucketGridModule} from './{I don't know where it is}/BucketGridModule';
@NgModule({
imports: [
...
BucketGridModule
],
declarations: [
FilterGridComponent //Now I'm not sure need or not.
],
})
答案 1 :(得分:-1)
经过一些解决之后,我想起来更简单。相反,在构造函数中声明filtergrid时,我只导入了
import { FilterGridComponent} from './{I don't know where it is}/FilterGridComponent';
,然后创建一个@ViewChild。
@ViewChild('filterGrid') filterGrid: FilterGridComponent;
之后,我可以毫无问题地调用relaod函数。
reloadData() {
this.filterGrid.reload()
}