加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

具有角度材料的角度为4的可扩展表格行

发布时间:2020-12-17 07:06:09 所属栏目:安全 来源:网络整理
导读:如何在角材料表中使行可扩展?一个要求是我需要使用 angular material table.我还希望将材料手风琴用于 here提供的信息. 我想点击行并显示每列的不同信息.我正在寻找类似下面的东西.如果单击第1行,则第2行和第3行将显示不同的数据. 解决方法 正如安德鲁·塞
如何在角材料表中使行可扩展?一个要求是我需要使用 angular material table.我还希望将材料手风琴用于 here提供的信息.

我想点击行并显示每列的不同信息.我正在寻找类似下面的东西.如果单击第1行,则第2行和第3行将显示不同的数据.

enter image description here

解决方法

正如安德鲁·塞古(Andrew Seguin)提到的那样,here已经开箱即可:使用时谓词.

看这个例子:https://stackblitz.com/edit/angular-material-expandable-table-rows(thx到Lakston)

demo

在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变量记录到控制台输出中,它将如下所示:

console output

编辑:使用指令的完整示例

Mat Table expandable rows (sorting,pagination and filtering)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读