ANGULAR:执行我的函数后呈现的控件

ANGULAR : control rendered after my function is executed

我有一个包含 table dx-data-grid 的组件。我想在 FALSE 某些列中设置一次可见。问题是我的控件在我执行代码中的功能后呈现:

我隐藏某些列的函数:

for (var i = 0, len = this.listedesdossiers.instance.columnCount(); i < len; i++) 
{
    if (this.Liste_Colonnes_A_Afficher.find(colonne=>
      colonne==this.listedesdossiers.instance.columnOption(i).dataField)==undefined )
    {
      this.listedesdossiers.instance.columnOption(i, "visible", false)  
    }
  }
<dx-data-grid
    #listedesdossiers
    id="grid"
    [dataSource]="Liste_dossiers"
    [columnWidth]="150"
    [showBorders]="true"
    [showColumnLines]="true"
    [showRowLines]="true"
    [rowAlternationEnabled]="true"
    height="100%"
    [allowColumnResizing]="true"
    noDataText="Pas de dossiers"
    (onContentReady)="contentReady()"
     (onInitialized)="Initialized($event)"
    >

如果我选择 ngAfterViewChecked 事件,例如,它会隐藏我的列,但是当我们更改视图时它会被多次调用,它会一直重新启动该功能。

如果我选择 ngOnInit,控件的实例是(逻辑)未定义的。 如果我选择 datagrid 的 onContentReady 事件,它会多次执行该函数,并重新初始化列的可见性。 如果我选择datagrid的onInitialized事件,控件的实例是(逻辑)未定义的。

你能帮帮我吗?

抱歉我的英语不好

为了在 ngAfterViewChecked 中只调用一个方法,您可以在 .ts 文件中使用布尔值作为标志。如:

if (this.notHidden) {
  this.yourHideFunction();
  this.notHidden = true;
  }