Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度:递归调用ngFor';s_Angular - Fatal编程技术网

Angular 角度:递归调用ngFor';s

Angular 角度:递归调用ngFor';s,angular,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)">

我有一个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>

该代码最多可以显示2个嵌套对象及其键和值。但是,如果最后一个对象在其自己的对象中还有3个嵌套对象,该怎么办?有没有一种方法可以动态地做到这一点,而无需硬编码?我相信有更好的解决办法。我真的很感激

您可以通过创建递归组件来解决它。例如

尝试使用一些treeview包,向其中传递嵌套对象!你能显示
树吗
也许你应该在TS文件中传播对象,并在HTML中使用它。可以编写递归函数来扩展对象。由于嵌套对象的深度未知,所以唯一的选项可以是递归函数
trees[
        header: {
            first: {
                title: {
                    name: "Test"
                }
            },
            second: {
                title: {
                    top: {
                        name: "Test"
                    }
                },
                desc: {
                    name: "Test"
                }
            }
        }
    ]