具有角度材料的角度为4的可扩展表格行
如何在角材料表中使行可扩展?一个要求是我需要使用
angular material table.我还希望将材料手风琴用于
here提供的信息.
我想点击行并显示每列的不同信息.我正在寻找类似下面的东西.如果单击第1行,则第2行和第3行将显示不同的数据. 解决方法
正如安德鲁·塞古(Andrew Seguin)提到的那样,here已经开箱即可:使用时谓词.
看这个例子:https://stackblitz.com/edit/angular-material-expandable-table-rows(thx到Lakston) 在mat-table标签内部,您必须使用mat-row组件和matRipple指令.单击某行时,行元素将分配给expandedElement变量: <mat-row *matRowDef="let row; columns: displayedColumns;" matRipple class="element-row" [class.expanded]="expandedElement == row" (click)="expandedElement = row"> </mat-row> 但现在我们必须添加我们的扩展行,默认情况下会隐藏,如果用户点击上面的行,则会显示: <mat-row *matRowDef="let row; columns: ['expandedDetail']; when: isExpansionDetailRow" [@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'" style="overflow: hidden"> </mat-row> 重要的是这里谓语时已经提到过.这将调用组件本身中定义的isExpansionDetailRow函数,并检查该行是否具有detailRow属性: isExpansionDetailRow = (row: any) => row.hasOwnProperty('detailRow'); 由于RC0第一个参数是索引: isExpansionDetailRow = (i: number,row: any) => row.hasOwnProperty('detailRow'); 如果你想为每一行都有一个扩展视图,你必须为每一行添加一个由详细信息标识的“ExpansionDetailRow”,如下所示: connect(): Observable<Element[]> { const rows = []; data.forEach(element => rows.push(element,{ detailRow: true,element })); return Observable.of(rows); } 如果要将rows变量记录到控制台输出中,它将如下所示: 编辑:使用指令的完整示例 Mat Table expandable rows (sorting,pagination and filtering) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |