首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将嵌套的Mat-Table网格应用于Angular中的第三层?

问如何将嵌套的Mat-Table网格应用于Angular中的第三层?
EN

Stack Overflow用户
提问于 2021-06-24 02:52:31
回答 1查看 114关注 0票数 1

通过大量的在线研究和帮助,我已经创建了一个带有嵌套网格的Mat-Table和一个嵌套的json。到目前为止,它有两个网格。但是现在我有了一个需求,我需要一个额外的嵌套网格。

我试图复制为第二级网格所做的操作来生成第三级网格,但"ExpandedElements“数组在生成第三级网格时抛出错误。

我更新的JSON看起来像-

代码语言:javascript
复制
{
name: 'Mason',
email: 'mason@test.com',
phone: '9864785214',
addresses: [
  {
    street: 'Street 1',
    zipCode: '78542',
    city: 'Kansas',
    comments: [
      {
        commenID: 1,
        comment: 'Test',
        commentStatus: 'Open'
      },
      {
        commenID: 2,
        comment: 'Test',
        commentStatus: 'Open'
      },{
        commenID: 3,
        comment: 'Test',
        commentStatus: 'Closed'
      },
    ]
  },

我希望评论是一个内部网格下的地址网格。

我已经准备好了2个网格和stackblitz链接中的json -

https://stackblitz.com/edit/angular-nested-mat-table-sia2jn?file=app%2Ftable-expandable-rows-example.ts

有没有人能帮我解决第三层网格的问题?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 21:17:40

您可以为您的地址上的嵌套注释设置一个类似的变量:

代码语言:javascript
复制
innerExpandedElements: any[] = [];

然后添加另一个切换函数来管理该列表:

代码语言:javascript
复制
toggleAddress(address) {
    const index = this.innerExpandedElements.findIndex(x => x === address);
    if (index === -1) {
      this.innerExpandedElements.push(address);
    } else {
      this.innerExpandedElements.splice(index, 1);
    }
  }

然后,当这些元素在数组中时,在模板中显示:

代码语言:javascript
复制
*ngIf="innerExpandedElements.includes(address)"

我做了一个简单的例子。它使用ul,没有动画,但在概念上应该是一样的。https://stackblitz.com/edit/angular-nested-mat-table-ynf8vb?file=app%2Ftable-expandable-rows-example.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68105638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档