Show Context Menu after condition Check in Primeng

2019-06-01 18:03发布

问题:

I have to show a context menu in a primeng tree table only in the second level. Is there any way to show the context menu only after some condition check in typescript (angular 4)?

回答1:

you can bind onContextMenuSelect event and play with [hide], I have done it like this.. in html...

  <p-contextMenu #cm [model]="items" [hidden]="contextMenu"></p-contextMenu>

and in ts ..

viewDetails(selectedNode) {
    this.contextMenu = false;
    if (selectedNode.children.length == 0) {
        this.contextMenu = false;
    }
    else { this.contextMenu = true;}
}

hope it works..



回答2:

For me, the best option was to use onContextMenuSelectEvent. First, you need to add it to the tree table

<p-treeTable [style]="{'font-size':'1.7rem'}" selectionMode="single" [(selection)]="selectedFile" (onContextMenuSelect)="contextMenu($event.node, cm)" [contextMenu]="cm" [value]="treeNodeData">

and then in the method, you have to check your conditions and show or hide context menu

  contextMenu(node, contextMenu){
if(condition){
  contextMenu.hide();
  }
}

I hope that it will also work for you.