В этом StackBlitz контекстное меню открывается, если флажок установлен. Но если оно ложное, оно не должно открываться. Любые идеи, как достичь последнего?
@Component({
selector: 'my-app',
template: `
<div #target>
Target
</div>
<kendo-contextmenu [target] = "target" [items] = "items">
</kendo-contextmenu>
Enable context menu <input type = "checkbox" [(ngModel)] = "open">
`
})
export class AppComponent {
public items: any[] = items;
open = true;
}
В контекстном меню нет кода, говорящего, что его не отображать. попробуйте добавить к нему *ngIf="open".
Есть событие popupOpen:
https://www.telerik.com/kendo-angular-ui/components/menus/api/ContextMenuComponent/#toc-popupopen
Вы можете отменить событие следующим образом в обратном вызове события:
onPopupOpen($event: ContextMenuPopupEvent) {
if (condition) {
$event.preventDefault();
return;
}
}
Я пытался исправить ваш stackblitz, но он не работает. Похоже, что в вашем примере stackblitz очень устаревшие угловые и кендо-депы. Но здесь это работает: с Angular 11.2.6, @progress/kendo-angular-menu": "^3.0.0".