gpt4 book ai didi

angular - 清晰度+ Angular 6 : Tree View Node Listener (clr-tree-node)

转载 作者:行者123 更新时间:2023-12-02 10:56:13 27 4
gpt4 key购买 nike

我正在尝试跟踪对树节点数据源所做的更改。每个节点都有一个 selected 属性,它反射(reflect)节点选择状态,每次选择一个节点时,我需要将选择发送到另一个组件,该组件将根据该选择构建另一棵树。

我尝试使用 OnChanges 接口(interface),但我后来在文档中读到,只有再次设置数据时才会调用 ngOnChanges。

这是我的简单模板:

   <clr-tree-node [(clrSelected)]="selected" >
Asset
<ng-template [clrIfExpanded]="true">
<clr-tree-node *ngFor="let asset of assets" [(clrSelected)]="asset.selected">
{{asset.type}}
</clr-tree-node>
</ng-template>
</clr-tree-node>

是否有一个我可以绑定(bind)的树节点事件,我可以用它来发出(使用 EventEmitter)更改的数据?例如 onSelectionChange、onChange 或其他什么?或者有其他机制吗?

提前致谢,亚历克斯。

最佳答案

据我所知,您已经绑定(bind)到该事件。只需使用双向绑定(bind)的长形式:

模板.html

<clr-tree-node [clrSelected]="selected" (clrSelectedChange)="changeSelected($event)">
Asset
<ng-template [clrIfExpanded]="true">
<clr-tree-node
*ngFor="let asset of assets
[clrSelected]="asset.selected"
(clrSelectedChange)="changeSelectedAsset(asset, $event)"
>{{asset.type}}</clr-tree-node>
</ng-template>
</clr-tree-node>

组件.ts

@Component(...)
export class MyComp {
@Output public structureChange:EventEmitter<...> = new EventEmitter<...>();

public changeSelected(data):void {
this.selected = data;
this.structureChange.emit(data);
}
public changeSelectedAsset(asset, data):void {
asset.selected = data;
this.structureChange.emit(this.selected);
}
}

类似这样的事情。当然,尽可能添加数据类型。

关于angular - 清晰度+ Angular 6 : Tree View Node Listener (clr-tree-node),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242274/

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