Angular:ngFor的递归调用

时间:2019-11-18 12:39:01

标签: angular

我有一个JSON,其中包含一些嵌套对象。为了显示它们,我创建了这个:

<div *ngFor="let item of trees">
    <div *ngFor="let obj of item | keyvalue">
        <div *ngFor="let obj1 of obj.value | keyvalue">
            <div *ngIf="!ifLeaf(obj1.value)">
                <b>{{ obj1.key }}</b>
                <div *ngFor="let obj2 of obj1.value | keyvalue">
                    <div *ngIf="ifLeaf(obj2.value)">
                        <i>{{ obj2.key }}</i>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

JSON如下所示:

trees[
        header: {
            first: {
                title: {
                    name: "Test"
                }
            },
            second: {
                title: {
                    top: {
                        name: "Test"
                    }
                },
                desc: {
                    name: "Test"
                }
            }
        }
    ]

该代码最多可以显示2个嵌套对象及其键和值。但是,如果最后一个对象在其自己的对象中又有3个嵌套对象,该怎么办?有没有一种方法可以动态地执行此操作而无需进行硬编码?我敢肯定有更好的解决方案。我真的会很感激!

1 个答案:

答案 0 :(得分:1)

您可以通过创建递归组件来解决它。例如https://netbasal.com/recursion-in-angular-components-1cd636269b12