我在我的应用程序中使用 Prime ng 树进行树渲染。 用例:简单地说,当再次选择节点(onNodeUnselect)时,我希望该节点仍被视为已选择。因此,我可以再次调用 NodeSelect 的方法并检索该节点的最新数据。
<p-tree
[value]="getValidTreeNodeItems(treeObj?.treeData)"
selectionMode="single"
(onNodeSelect)="onNodeSelect($event)"
(onNodeUnselect)="preventUnselect($event)" > ....
//prevent
preventUnselect(event: any) {
event.originalEvent.preventDefault(); //doesn't work
event.originalEvent.stopPropagation(); //doesn't work either
因此该节点被视为未选择,并且所有选择类也被删除。 我尝试了将类(如 p-highlight)应用于刚刚未选择的节点以使其看起来被选中的方法,但这会导致维护另一个逻辑内容来分配和删除类,这是我想避免的。
提前感谢您的帮助。
我试过了,没成功
preventUnselect(event: any){
this.onNodeSelect(event)
}
然后我意识到也许是时间延迟的问题。所以我尝试了setTimeout,虽然看起来有点延迟,但它会被重新选择。
preventUnselect(event: any){
setTimeout(() => {
this.onNodeSelect(event)
}, 0);
}