角度和嵌套递归

问题描述 投票:0回答:1

我想知道 Angular 组件是否可以进行嵌套递归。 我的意思是“嵌套递归”,组件 A 使用组件 B,组件 B 使用组件 A 本身。我想用它来显示像文件夹树这样的层次结构。 递归性仅适用于一个可重用自身的组件。但一旦我删除了部分代码并将其放入第二个组件中,它就不再起作用了。

这是工作代码:

<div class="folder">
    <div class="folder-title">Folder</div>
    <div class="folder-name">
        <span>{{this.folder.name}}</span>
        <lib-sub-folders-indicator [subFoldersIndicator]="subFoldersIndicator" (click)="OnClick()"></lib-sub-folders-indicator>
    </div>

**    <div class="folder-subfolders" *ngIf="HasSubFolders() && !subFoldersClosed">
        <lib-folder *ngFor="let myfolder of folder.folders" [folder]="myfolder"></lib-folder>
    </div>**
</div>

这就是结果 enter image description here

这是错误的工作代码:

<div class="folder">
    <div class="folder-title">Folder</div>
    <div class="folder-name">
        <span>{{this.folder.name}}</span>
        <lib-sub-folders-indicator [subFoldersIndicator]="subFoldersIndicator" (click)="OnClick()"></lib-sub-folders-indicator>
    </div>
    **<lib-folders *ngIf="HasSubFolders() && !subFoldersClosed" [folders]="folder.folders"></lib-folders>**
</div>

第二个组成部分:

<div class="folder-subfolders">
    <lib-folder *ngFor="let myfolder of folders" [folder]="myfolder"></lib-folder>
</div>

控制台显示此消息: 2folder.component.html:9 NG0303:无法绑定到“ngIf”,因为它不是“div”的已知属性(在“FolderComponent”组件模板中使用)。 如果“ngIf”是 Angular 控制流指令,请确保“NgIf”指令或“CommonModule”是声明此组件的 @NgModule 的一部分。

有谁知道 Angular 是否能够处理嵌套递归?

感谢您的阅读

我的环境:

Angular CLI:16.1.8 节点:18.13.0 包管理器:pnpm 8.12.1 操作系统:win32 x64

角度:16.2.12 动画、常见、编译器、compiler-cli、核心、表单 平台浏览器、平台浏览器动态、路由器

angular recursion nested
1个回答
0
投票

我的路线只是指向文件夹组件而不加载模块。 所以我有答案: 是的,Angular 可以实现嵌套递归。

© www.soinside.com 2019 - 2024. All rights reserved.