0

我无法找到使用角树组件禁用复选框节点的任何方法。没有选项将树标记为禁用,因此应禁用与树数据一起出现的复选框。请建议

4

1 回答 1

0

可以通过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;
    }
};
于 2020-08-25T11:17:48.220 回答