使用模板时如何防止 PrimeNG Tree onNodeSelect() 触发?
How can I prevent PrimeNG Tree onNodeSelect() from firing when using templating?
我正在尝试将 PrimeNG 树与模板一起使用。一切都显示正常,但我的模板内的任何点击都是 selecting/deselecting 节点,有什么办法可以防止这种情况发生吗?在下面的代码中,我只想单击元素来调用 doSomething(),而不是 nodeSelected():
<p-tree [value]="tree" selectionMode="checkbox" [(selection)]="treeSelected" (onNodeSelect)="nodeSelected($event.node.data)">
<ng-template let-node pTemplate="template1">
{{node.label}}
<span class="labelDescription">Type 1</span>
<a href="javascript:void(0);" (click)="doSomething(node.data)">Do Something</a>
</ng-template>
</p-tree>
使用 Angular 的 event binding 并将其添加到 doSomething
() 方法中。它将通过简单地阻止它来拦截从项目冒泡到行的事件:
doSomething(event, item){
event.stopPropagation();
// as before you had
}
并将 HTML 更改为:
<a href="javascript:void(0);" (click)="doSomething($event, node.data)">Do Something</a>
我正在尝试将 PrimeNG 树与模板一起使用。一切都显示正常,但我的模板内的任何点击都是 selecting/deselecting 节点,有什么办法可以防止这种情况发生吗?在下面的代码中,我只想单击元素来调用 doSomething(),而不是 nodeSelected():
<p-tree [value]="tree" selectionMode="checkbox" [(selection)]="treeSelected" (onNodeSelect)="nodeSelected($event.node.data)">
<ng-template let-node pTemplate="template1">
{{node.label}}
<span class="labelDescription">Type 1</span>
<a href="javascript:void(0);" (click)="doSomething(node.data)">Do Something</a>
</ng-template>
</p-tree>
使用 Angular 的 event binding 并将其添加到 doSomething
() 方法中。它将通过简单地阻止它来拦截从项目冒泡到行的事件:
doSomething(event, item){
event.stopPropagation();
// as before you had
}
并将 HTML 更改为:
<a href="javascript:void(0);" (click)="doSomething($event, node.data)">Do Something</a>