P-tree onNodeUnselect 应该重新选择节点,避免默认行为 primeng

问题描述 投票:0回答:1

我在我的应用程序中使用 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)应用于刚刚未选择的节点以使其看起来被选中的方法,但这会导致维护另一个逻辑内容来分配和删除类,这是我想避免的。

提前感谢您的帮助。

angular primefaces tree primeng primeng-tree
1个回答
0
投票

我试过了,没成功

preventUnselect(event: any){
        this.onNodeSelect(event)
    }

然后我意识到也许是时间延迟的问题。所以我尝试了setTimeout,虽然看起来有点延迟,但它会被重新选择。

preventUnselect(event: any){
        setTimeout(() => {
        this.onNodeSelect(event)
        }, 0);
    }
© www.soinside.com 2019 - 2024. All rights reserved.