具有扩展列和嵌套mat-table的动态mat表列

时间:2019-11-22 05:21:15

标签: angular angular-material2 mat-table

我正在创建一个可重用的mat-table组件,该组件接受2个输入:列元数据和表数据。列元数据如下:

    var metadata:[
           { 
             'colName' : 'WO', 
             'expanded': false 
           },
           { 
             'colName' : 'Serial',
             'expanded': false
           },
           { 
             'colName' : 'Quantity',
             'expanded': false
           },
           { 
             'colName' : 'Nested',
             'expanded': true
           }

,表数据数组如下:

    var data:[
         { 
           'WO': '2633',
           'Serial': '1qqqr4ew',
           'Quantity': 5,
           'Nested': []
         },
         { 
           'WO': '2633',
           'Serial': '1qqqr4ew',
           'Quantity': 5,
           'Nested': [
               { 
                'nestedCol1' : 3e2,
                'nestedCol2' : 2,
                'nestedCol3' : '01/01/2019'
               },
               { 
                'nestedCol1' : 3e2,
                'nestedCol2' : 2,
                'nestedCol3' : '01/01/2019'
               },
               { 
                'nestedCol1' : 3e2,
                'nestedCol2' : 2,
                'nestedCol3' : '01/01/2019'
               }
           ]
        },
        { 
           'WO': '1234',
           'Serial': 'qa9011',
           'Quantity': 200,
           'Nested': [
               { 
                'nestedCol1' : 121,
                'nestedCol2' : 21,
                'nestedCol3' : '15/03/2019'
               },
               { 
                'nestedCol1' : 450,
                'nestedCol2' : 24,
                'nestedCol3' : '23/07/2019'
               },
               { 
                'nestedCol1' : 91,
                'nestedCol2' : 12,
                'nestedCol3' : '01/05/2019'
               }
           ]
        }
     ] 

从元数据对象数组中,我正在构造一个主表列定义,其中“ expanded”属性设置为true的列需要可扩展。在可扩展列中,我需要构建一个嵌套的mat-table(如果适用),该嵌套的mat-table显示来自数据对象数组对应属性(在此示例中为“嵌套”)的嵌套对象数组数据。

将'expanded'属性设置为false的动态列很容易构造并正确显示数据,并且嵌套表也很容易构造。

是否可以根据元数据列数组定义在主表中定义动态可扩展列?

注意, 每个主表只有一个可扩展的列定义,并且并非所有数据对象都具有嵌套对象数组。

我正在使用角度v.8和角度材料v.8

非常感谢。

1 个答案:

答案 0 :(得分:0)

据我了解,您想根据数据对象是否具有嵌套元素来动态添加扩展的true或false。

您可以简单地进行迭代并检查嵌套长度来做到这一点。