PrimeNG树表-如何停止向上传播?



我在Angular 10中使用PrimeNG treeTable (p-treeTable)和复选框选择器(p-treeTableCheckbox),根据他们的例子向下滚动到复选框选择

在此实现中,如果用户展开节点并取消选择子项,则父节点也将取消选择。在我们的场景中,这是不希望看到的行为。我希望父节点保持选中,即使所有子节点都未选中。但是,如果用户选择/取消选择父节点,那么选择/取消选择所有子节点仍然是有效的。

例如,在他们的例子中,展开第一个节点"applications",展开下一个节点"angular"。然后取消选中像"mobile.app"=比;Angular和Applications的父级都不受检查。

那么,当子节点更改时,是否有可能使父节点保持不变?

我的表是:

<p-treeTable [value]="allUsers" selectionMode="checkbox" [(selection)]="selectedNodes">
<ng-template pTemplate="body" let-rowNode let-rowData="rowData">
<tr>
<td>
<div>
<p-treeTableToggler [rowNode]="rowNode" id="{{rowNode.node.Email}}">
</p-treeTableToggler>
<p-treeTableCheckbox [value]="rowNode"></p-treeTableCheckbox>
<span>{{rowNode.node.data.Name}}</span>
</div>
</td>
</tr>
</ng-template>
</p-treeTable>

p-treeTableCheckbox上似乎没有任何行为属性会影响这一点?

事实证明,有一个名为[propagateSelectionUp]="false"的属性可以应用并完全按照我想要的方式工作....问题是它不存在于p-treeTable组件上,只存在于p-tree组件上。因此,解决方案是移动到p-tree组件并实现[propagateSelectionUp]="false"属性。

结果:

<p-tree [value]="allUsers" selectionMode="checkbox" [(selection)]="selectedNodes" [propagateSelectionUp]="false">
...

相关内容

  • 没有找到相关文章