我有一个具有这种结构的组件
<comp>
<comp> </comp>
<comp> </comp>
</comp>
深度嵌套的子项中的更改/单击事件可能导致整个“树”的更新。例如:下面这张图片左侧的勾号
我应将哪种变更检测策略应用于此类问题? 我已经尝试使用 EventEmitter 从深子级发出“选定节点”事件,直到最高节点
我还认为所有节点都可以订阅一个主题并进行更新
适用于此类问题的正确解决方案是什么?
答案 0 :(得分:0)
对我来说,方法是您的组件具有@Input
个子级,父级和级别,因此您可以递归更改值,可以在this response in SO中看到一个示例。 “键”被声明为变量“自我”和输入
self=this;
@Input() level: number;
@Input() children: any;
@Input() parent: any;
做些喜欢的
<li *ngFor="let item of children">
{{item.label}}
<ul recursive *ngIf="item.children"
[children]="item.children"
[parent]="self"
[level]="level!=undefined?level+1:0">
</ul>
</li>