禁止在 Kendo 中为 Angular 打开上下文菜单

Disable opening context menu in Kendo for Angular

在此 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 和 kendo deps。 但它在这里有效:with Angular 11.2.6, @progress/kendo-angular-menu": "^3.0.0".