From 82cace944d312bcfb4563a1e14f64b05fc8ba086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Thu, 13 Apr 2023 18:59:35 +0300 Subject: [PATCH 1/2] detect selectedNode change on tree --- .../components/tree/src/lib/components/tree.component.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts index 5df8ed5ee0..219e049ce2 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts @@ -1,4 +1,6 @@ import { + ChangeDetectionStrategy, + ChangeDetectorRef, Component, ContentChild, EventEmitter, @@ -26,6 +28,7 @@ export type DropEvent = NzFormatEmitEvent & { pos: number }; styleUrls: ['tree.component.scss'], encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class TreeComponent implements OnInit { dropPosition: number; @@ -38,6 +41,7 @@ export class TreeComponent implements OnInit { @Optional() @Inject(DISABLE_TREE_STYLE_LOADING_TOKEN) private disableTreeStyleLoading: boolean | undefined, + private cdr: ChangeDetectorRef, ) {} @ContentChild('menu') menu: TemplateRef; @@ -116,4 +120,9 @@ export class TreeComponent implements OnInit { initDropdown(key: string, dropdown: NgbDropdown) { this.dropdowns[key] = dropdown; } + + setSelectedNode(node: any) { + this.selectedNode = { ...node }; + this.cdr.markForCheck(); + } } From 945122f6803392655a63175ec2bc615c494d043a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Fri, 14 Apr 2023 18:07:12 +0300 Subject: [PATCH 2/2] find node with given id --- .../tree/src/lib/components/tree.component.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts index 219e049ce2..ccc44cde0b 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts @@ -81,6 +81,21 @@ export class TreeComponent implements OnInit { this.subscriptionService.addOne(loaded$); } + private findNode(target: any, nodes: any[]) { + for (const node of nodes) { + if (node.key === target.id) { + return node; + } + if (node.children) { + let res = this.findNode(target, node.children); + if (res) { + return res; + } + } + } + return null; + } + onSelectedNodeChange(node: NzTreeNode) { this.selectedNode = node.origin.entity; if (this.changeCheckboxWithNode) { @@ -122,7 +137,8 @@ export class TreeComponent implements OnInit { } setSelectedNode(node: any) { - this.selectedNode = { ...node }; + let newSelectedNode = this.findNode(node, this.nodes); + this.selectedNode = { ...newSelectedNode }; this.cdr.markForCheck(); } }