如何将Nested Mat-Table Grid应用到Angular中的第三层?
How to apply Nested Mat-Table Grid to the third level in Angular?
我通过大量在线研究和帮助创建了一个带有嵌套网格的 Mat-Table 和嵌套 json。它现在有 2 个网格。但是现在我有一个要求,我需要一个额外的嵌套网格。
我试图复制对二级网格所做的操作以生成三级网格,但是“ExpandedElements”数组在生成三级网格时抛出错误。
我更新后的 JSON 看起来像 -
{
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'
},
]
},
我希望评论成为地址网格下的内部网格。
我在 stackblitz link -
中使用 json 准备好了 2 个网格
谁能帮助我如何进行第三级网格?
谢谢
您可以为地址上的嵌套评论设置一个类似的变量:
innerExpandedElements: any[] = [];
然后添加另一个切换功能来管理该列表:
toggleAddress(address) {
const index = this.innerExpandedElements.findIndex(x => x === address);
if (index === -1) {
this.innerExpandedElements.push(address);
} else {
this.innerExpandedElements.splice(index, 1);
}
}
然后当这些元素在您的数组中时在您的模板中显示:
*ngIf="innerExpandedElements.includes(address)"
我做了一个简单的例子。它使用 ul
并且没有动画,但在概念上应该是一样的。
https://stackblitz.com/edit/angular-nested-mat-table-ynf8vb?file=app%2Ftable-expandable-rows-example.html
我通过大量在线研究和帮助创建了一个带有嵌套网格的 Mat-Table 和嵌套 json。它现在有 2 个网格。但是现在我有一个要求,我需要一个额外的嵌套网格。
我试图复制对二级网格所做的操作以生成三级网格,但是“ExpandedElements”数组在生成三级网格时抛出错误。
我更新后的 JSON 看起来像 -
{
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'
},
]
},
我希望评论成为地址网格下的内部网格。
我在 stackblitz link -
中使用 json 准备好了 2 个网格谁能帮助我如何进行第三级网格?
谢谢
您可以为地址上的嵌套评论设置一个类似的变量:
innerExpandedElements: any[] = [];
然后添加另一个切换功能来管理该列表:
toggleAddress(address) {
const index = this.innerExpandedElements.findIndex(x => x === address);
if (index === -1) {
this.innerExpandedElements.push(address);
} else {
this.innerExpandedElements.splice(index, 1);
}
}
然后当这些元素在您的数组中时在您的模板中显示:
*ngIf="innerExpandedElements.includes(address)"
我做了一个简单的例子。它使用 ul
并且没有动画,但在概念上应该是一样的。
https://stackblitz.com/edit/angular-nested-mat-table-ynf8vb?file=app%2Ftable-expandable-rows-example.html