Skip to content

Commit a9dc205

Browse files
fix(module:tree): nzCheckBoxChange never emitting (#8038)
1 parent 1e1c753 commit a9dc205

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

components/core/tree/nz-tree-base.service.ts

+20
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,26 @@ export class NzTreeBaseService {
5555
return this.conductNodeState('select');
5656
}
5757

58+
/**
59+
* get checked node keys
60+
*/
61+
getCheckedNodeKeys(): NzTreeNodeKey[] {
62+
const keys: NzTreeNodeKey[] = [];
63+
const checkedNodes = this.getCheckedNodeList();
64+
65+
const calc = (nodes: NzTreeNode[]): void => {
66+
nodes.forEach(node => {
67+
keys.push(node.key);
68+
if (node.children.length < 1) return;
69+
calc(node.children);
70+
});
71+
};
72+
73+
calc(checkedNodes);
74+
75+
return keys;
76+
}
77+
5878
/**
5979
* return checked nodes
6080
*/

components/tree/tree.component.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ export class NzTreeComponent
224224

225225
@Output() readonly nzExpandedKeysChange: EventEmitter<string[]> = new EventEmitter<string[]>();
226226
@Output() readonly nzSelectedKeysChange: EventEmitter<string[]> = new EventEmitter<string[]>();
227-
@Output() readonly nzCheckedKeysChange: EventEmitter<string[]> = new EventEmitter<string[]>();
227+
@Output() readonly nzCheckedKeysChange: EventEmitter<NzTreeNodeKey[]> = new EventEmitter<NzTreeNodeKey[]>();
228228
@Output() readonly nzSearchValueChange = new EventEmitter<NzFormatEmitEvent>();
229229
@Output() readonly nzClick = new EventEmitter<NzFormatEmitEvent>();
230230
@Output() readonly nzDblClick = new EventEmitter<NzFormatEmitEvent>();
@@ -426,6 +426,8 @@ export class NzTreeComponent
426426
// Cause check method will rerender list, so we need recover it and next the new event to user
427427
const eventNext = this.nzTreeService.formatEvent('check', node, event.event!);
428428
this.nzCheckBoxChange.emit(eventNext);
429+
const checkedKeys = this.nzTreeService.getCheckedNodeKeys();
430+
this.nzCheckedKeysChange.emit(checkedKeys);
429431
break;
430432
case 'dragstart':
431433
// if node is expanded

0 commit comments

Comments
 (0)