Отключение узла может быть выполнено с помощью actionMapping
внутри атрибута параметров https://angular2-tree.readme.io/v1.2.0/docs/options. Здесь событие щелчка мыши может быть перезаписано.
<Tree [nodes]="nodes" [options]="treeOptions"></Tree>
В моих данных дерева Я сохранил атрибут isSelectable
на каждом узле, который равен true|false
. В случае истины я продолжаю выбирать узел, иначе он ничего не делает. Вот полные параметры, которые я передаю компоненту tree
.
public options: ITreeOptions = {
isExpandedField: 'expanded',
idField: 'uuid',
getChildren: this.getChildren.bind(this),
actionMapping: {
mouse: {
click: (tree, node, $event) => {
if ( node.data.isSelectable ) {
this.isNodeSelected.emit(node.data);
this.alreadySelected = true;
this.preSelected.tree = tree;
this.preSelected.node = node;
this.preSelected.event = $event;
TREE_ACTIONS.ACTIVATE(this.preSelected.tree, this.preSelected.node, this.preSelected.event);
}
}
}
},
nodeHeight: 23,
allowDrag: (node) => {
return false;
},
allowDrop: (node) => {
return false;
}
};