Estoy usando el nodo de árbol mat para obtener un nodo de selección del usuario como este:
export class SelectDataComponent implements OnInit { @Output() selectedList=new EventEmitter<any[]>(); @Input() exportMode: boolean; private _transformer = (node: DeviceNode, level: number) => ({ expandable: !!node.children && node.children.length > 0, id:node.id, name: node.name, level: level, }); treeControl = new FlatTreeControl<ExampleFlatNode>( node => node.level, node => node.expandable); treeFlattener = new MatTreeFlattener( this._transformer, node => node.level, node => node.expandable, node => node.children); dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); checklistSelection = new SelectionModel<ExampleFlatNode>(true /* multiple */); tree: any; constructor(private _propertyService: PropertyService) { } hasChild = (_: number, node: ExampleFlatNode) => node.expandable; ngOnInit() { this._propertyService.getTreeNodes().subscribe((respP)=>{ this.tree=JSON.parse(respP.data); //this.tree =TREE_DATA; this.dataSource.data=this.tree; }); }; todoItemSelectionToggle(node: ExampleFlatNode): void { this.checklistSelection.toggle(node); const descendants = this.treeControl.getDescendants(node); this.checklistSelection.isSelected(node) ? this.checklistSelection.select(...descendants) : this.checklistSelection.deselect(...descendants); descendants.every(child => this.checklistSelection.isSelected(child) ); } todoLeafItemSelectionToggle(node: ExampleFlatNode): void { this.checklistSelection.toggle(node); const a=of(this.checklistSelection.selected); } public sendToDataList(){ if (this.checklistSelection.selected.length===0) { console.log('error'); } else { const b=this.selectedList.emit(this.checklistSelection.selected); } } public clearList() { this.checklistSelection.clear(); } }¿Cómo puedo desactivar otro nodo seleccionando un nodo? Es decir, si se selecciona 'A', la casilla de verificación 'B' estará deshabilitada
Mi objetivo es imponer restricciones de selección de datos para que los nodos 'A' y 'B' no se seleccionen al mismo tiempo.