Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular *ngIf未在垫台ng容器内工作_Angular_Angular Material Table - Fatal编程技术网

Angular *ngIf未在垫台ng容器内工作

Angular *ngIf未在垫台ng容器内工作,angular,angular-material-table,Angular,Angular Material Table,我使用Angular mat table创建一个包含三列的简单表格。在其中,当单击表中的任何行时,我需要隐藏2列。因此,我创建了一个click函数,并在单击行时将布尔变量设置为true 通过使用该布尔值,我在HTML文件中设置了*ngIf条件,以便在行单击时隐藏列。但是*ngIf在角垫表中不起作用 这是我的密码: HTML 甜点(100克) {{element.name} 卡路里 {{element.carries}} 脂肪(g) {{element.fat} 碳水化合物(克) {{eleme

我使用Angular mat table创建一个包含三列的简单表格。在其中,当单击表中的任何行时,我需要隐藏2列。因此,我创建了一个click函数,并在单击行时将布尔变量设置为true

通过使用该布尔值,我在HTML文件中设置了
*ngIf
条件,以便在行单击时隐藏列。但是
*ngIf
在角垫表中不起作用

这是我的密码:

HTML


甜点(100克)
{{element.name}
卡路里
{{element.carries}}
脂肪(g)
{{element.fat}
碳水化合物(克)
{{element.carbs}}
TS

导出类sampleComponent实现OnInit{
公共行单击:布尔值=真;
构造函数(){}
ngOnInit():void{
}
公营机构(){
this.rowClick=false;
console.log(this.rowClick);
}
数据来源:食品[]=[
{名称:“酸奶”,卡路里:159,脂肪:6,碳水化合物:24},
{名称:'三明治',卡路里:237,脂肪:9,碳水化合物:37},
{name:'Eclairs',卡路里:262,脂肪:16,碳水化合物:24},
{名称:“纸杯蛋糕”,卡路里:305,脂肪:4,碳水化合物:67},
{名称:'姜饼',卡路里:356,脂肪:16,碳水化合物:49},
];
displayedColumns:string[]=['name','Carries','fat','carbs'];
}

您可以修改
displayedColumns
变量来控制渲染哪些列,而不是使用
*ngIf
指令。试试下面的方法

导出类sampleComponent实现OnInit{
...
displayedColumns:string[]=['name','Carries','fat','carbs'];
公营机构(){
this.displayedColumns=['name'];
}
公共重置(){
this.displayedColumns=['name','carries','fat','carbs'];
}
}

现在不需要使用
rowClick
boolean标志。

那么,当我们需要调用reset按钮时,reset()在这里有什么用途。如果您希望再次显示所有列,您可以使用它。如果不需要,可以将其删除。是否可以使用此函数隐藏第一列标题名称?这里的列名是甜点,那么是否可以隐藏甜点呢?