angular - ANGULAR : 执行我的函数后呈现的控件
问题描述
我有一个包含表格 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;
}
推荐阅读
- javascript - 如何在 webgl 中使用 uv 纹理包裹空间以制作黑洞
- c# - 使用第三方对象实例化测试代码
- c# - 在内部 .NET Framework 方法中花费的分析时间
- excel - VBA如何从应用程序调用者地址中选择和偏移?
- python - 变量范围和共享“全局”参考数据帧
- json - ColdFusion前缀序列化JSON
- angular - 使用 ngSwitch 而不是 router-outlet,因为在 router-outlet 指令中缺乏对 @Input 的支持
- c# - 我无法将行添加到字符串集合编辑器 - VS2019
- python - 是否可以在同一台机器上的不同端口上同时运行 SFTP 服务器和客户端?
- python - GCP 实例中的 jupyter 笔记本无法导入 wget 或 fastai