Я пытаюсь создать собственный компонент Grid, в котором я хочу отображать / передавать другие компоненты. Я создал компонент Grid и динамически загружаю его в свой dashboard.component.ts
.
Вот мой шаблон Grid.
<div nz-row *ngFor="let row of grid; index as i;">
<div nz-col *ngFor="let col of row; index as j;">
<div>
<ng-template name="{{i}}{{j}}"></ng-template>
</div>
</div>
</div>
Директива.
@Directive({
selector: 'ng-template[name]'
})
export class CustomGridDirective {
@Input() name: string;
constructor(public viewContainerRef: ViewContainerRef) { }
}
Мой custom-grid.component.ts
,
export class CustomGridComponent implements OnInit {
@Input() grid: any;
@ViewChildren(CustomGridDirective) gridContainer: QueryList<CustomGridDirective>;
constructor() {}
ngOnInit() {
}
}
Dashboard.component.ts
, где я динамически загружаю свой компонент Grid.
async customGrid(){
const {CustomGridComponent} = await import('../custom-grid/custom-grid.component');
const customGridFactory = this.cfr.resolveComponentFactory(CustomGridComponent);
let {instance} = this.anchor1.createComponent(customGridFactory, null, this.injector);
instance.grid = [
['1', '2', '3']
]
return instance
}
ngAfterViewInit() {
this.customGrid().then( component => console.log(component.gridContainer));
}
Теперь я не могу получить доступ к component.gridContainer
или даже component.grid
. Оба возвращают undefined
.
Скажем, у меня есть dashboard-widget-1.component
, как мне динамически визуализировать его внутри компонента настраиваемой сетки? Я пытался приблизиться к списку запросов ViewChildren и попытаться отобразить компонент внутри.
Но я получаю component.gridContainer
и component.grid
, оба как undefined. Как я могу динамически отображать компоненты, такие как dashboard-widget-1.component
и dashboard-widget-2.component
в моем сетевом компоненте (который я динамически загружал)?
Я застрял с нескольких дней, любая помощь будет принята с благодарностью.