У меня есть элемент управления PrimeNG 7.1 для дерева, см. https://stackblitz.com/edit/angular-primeng-tree-sml
Обычное поведение для дерева состоит в том, что вы можете проверять открытые узлы в дереве и проверять любые элементы в любых узлах дерева.Не проблема, я делал это много раз.
На этот раз мое назначение состоит в том, что мы хотим разрешить выбирать элементы только в одном узле.
Например, пользователь может выбрать Old Navy и Hill City , но , если они выбирают Marshalls, тогда Old Navy и Hill City не нужно проверять.Поэтому мы хотим, чтобы в каждый момент времени можно было выбрать только один узел верхнего уровня и его дочерние элементы.
Я настроил деревос JSON dat из подписки:
<p-tree [value]="accountTreeData"
selectionMode="checkbox"
[(selection)]="checkedItems"
(onNodeSelect)="nodeSelect($event)"
(onNodeUnselect)="nodeUnselect($event)"
(onNodeExpand)="nodeExpand($event)"></p-tree>
Это связано с этими переменными:
accountTreeData$: Subscription;
accountTreeData: TreeNode[];
selectedFiles: TreeNode[];
checkedItems: TreeNode[];
checkedCount = 0;
и этими методами:
nodeSelect(event) {
this.updateAccountCount();
}
nodeUnselect(event) {
this.updateAccountCount();
}
updateAccountCount() {
this.checkedCount = this.checkedItems.length;
}
nodeExpand(event) {
console.log(event.node.label);
}
Любые мысли о том, как подойтиОтмена выбора предметов в других ветвях (узлах)?