1

从某些服务获取数据并使用此数据进行一些计算的 Angular 项目,然后它显示在一个组件中(使用Syncfusion的网格组件)。当涉及到ngOnInit时,数据被加载但它没有出现在页面上。每当我点击屏幕上的某个地方时,它都会在页面上显示数据。我无法处理它,有什么建议吗?

<ejs-grid #grid id='grid'[rowHeight]='30' (rowDataBound)="rowDataBound($event)" [dataSource]='XXX$ | async' [editSettings]='editSettings' (cellSaved)="dataChanged($event)" height="300px" style="color: red;">
            <e-columns>
                <e-column field='x1' [visible]="check[0]" headerText='x1' textAlign='center'  width=120></e-column>
                <e-column field='x2' [visible]="check[1]" headerText='x2' textAlign='center'  width=120></e-column>                    
                <e-column field='x3' [visible]="check[2]" headerText='x3' textAlign='center'  width=120></e-column>
            </e-columns>
</ejs-grid>

将dataSource属性observable绑定,并将数据从带有“of()”标签的数组传递到这个 observable

XXX$!: Observable<XModel[]>;

this.XXX$= of(YYY);
4

1 回答 1

2

用 changeDetectionRef.detectChanges() 解决。

import { ChangeDetectorRef } from '@angular/core';

从导入添加到构造函数中,

constructor(private ref: ChangeDetectorRef){}

在需要的地方调用 detectChanges()

this.ref.detectChanges();
于 2022-02-01T09:53:21.177 回答