禁止在 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".
在此 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".