gpt4 book ai didi

Angular 6 : Mat-tree-node selection/click event implementation

转载 作者:行者123 更新时间:2023-12-04 12:11:18 24 4
gpt4 key购买 nike

我正在使用带有动态数据的 Angular Material Tree Control。

这是完整示例的链接:

example is here

它的工作原理如示例中所述。现在我想启用每个节点单击事件并在我的 typescript 函数中发送( Angular 表达式)绑定(bind)数据。

任何人都可以指导我吗?

我尝试了不同的代码,但无法为单击启用树节点。

见html:

    <mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding>
<button mat-icon-button disabled ></button>
{{node.item}}
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node; when: hasChild" matTreeNodePadding>
<button mat-icon-button (click)="applyFilter($event)"
[attr.aria-label]="'toggle ' + node.filename" matTreeNodeToggle>
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
{{node.item}}
<mat-progress-bar *ngIf="node.isLoading"
mode="indeterminate"
class="example-tree-progress-bar"></mat-progress-bar>
</mat-tree-node>
</mat-tree>

我试过这个来源,但仍然无法修复它。我尝试了堆栈溢出解决方案,但还无法解决我的问题。
 ngAfterViewChecked() {
this.treeNodes.forEach((reference) => {
if (!this.hasListener.includes(reference.nativeElement)) {
console.log('* tick');

this.renderer.listen(reference.nativeElement, 'click', () => {
this.updateHighlight(reference);
});
this.renderer.listen(reference.nativeElement.children.item(0), 'click', () => {
this.updateHighlight(reference);
});

this.hasListener = this.hasListener.concat([reference.nativeElement]);
}
});

this.hasListener = this.hasListener.filter((element) => document.contains(element));
console.log('*', this.hasListener.length);
}

最佳答案

你可以包装你的 {{node.item}}在 mat-button 中并从那里绑定(bind)到 click 事件以将节点元素传递给您的组件方法。

<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding>
<button mat-button (click)="logNode(node)">
{{node.item}}
</button>
</mat-tree-node>

然后在你的组件中
 logNode(node){
console.log(node)
}

关于 Angular 6 : Mat-tree-node selection/click event implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53468313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com