Показать контекстное меню после проверки условия в Primeng Angular 4

Я должен показать контекстное меню в таблице дерева примэнг только на втором уровне. Есть ли способ показать контекстное меню только после проверки условия в машинописном тексте (угловой 4)?


person Reshma Ramesh    schedule 11.11.2017    source источник
comment
Что вы сделали до сих пор? Вы пытались использовать событие onContextMenuSelect?   -  person Antikhippe    schedule 11.11.2017
comment
Мне также нужно показывать контекст только тогда, когда пользователь щелкает правой кнопкой мыши в определенных столбцах.   -  person Ziggler    schedule 12.04.2018


Ответы (2)


Для меня лучшим вариантом было использовать onContextMenuSelectEvent. Во-первых, вам нужно добавить его в таблицу дерева

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

а затем в методе вы должны проверить свои условия и показать или скрыть контекстное меню

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

Я надеюсь, что это также сработает для вас.

person Stefan    schedule 17.04.2018
comment
Да, и обратите внимание, что для p-tree это onNodeContextMenuSelect.github.com/primefaces/primeng/blob/master/src/app/components/ - person dirtyw0lf; 15.01.2019
comment
Работал как указано. Спасибо Стефан. - person Sachin Karche; 22.04.2020

вы можете привязать событие onContextMenuSelect и поиграть с [скрыть], я сделал это так.. в html...

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

и в тс..

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

надеюсь, что это работает..

person Sarvagya Saxena    schedule 17.04.2018
comment
Когда это используется с p-таблицей, это не работает. Если я установил [hidden]=true или [hidden]=false, всегда будет отображаться контекстное меню. - person Ravindra Vairagi; 04.07.2019
comment
ты используешь ANGULAR 4 PRIMENG @RavindraVairagi ??? Я думаю, что hidden сейчас устарел, но нужно проверить это. Мои решения работают для angular 4, как указано в вопросе, поэтому не понижайте голос: P - person Sarvagya Saxena; 04.07.2019
comment
Использование angular 5 и PrimeNG версии 5. - person Ravindra Vairagi; 04.07.2019
comment
Хммм.. вопрос для anguar 4.. для которого мое решение хорошо работает :) - person Sarvagya Saxena; 10.05.2020