繁体   English   中英

Angular:是否可以使用指令删除模板事件“(点击)”?

[英]Angular: Is possible to remove template event "(click)" with a directive?

我动态创建模板,我有一个指令来检查用户权限(基本上是读和写)

如果我的用户只有“读取”权限,是否可以删除附加的点击事件? 在此处输入图片说明

这是指令的代码,我尝试在指令中添加一个单击侦听器并停止指令内部的事件,但仍然触发了单击事件。

这是指令的代码。 在此处输入图片说明

请在这里稍微改变你的逻辑。

首先,您可以根据需要拥有@Input() permissions: string[]

其次,在(click)事件中,不直接调用value.clickEvent() ,可以创建一个方法调用click,这里可以有if-else/switch-case条件来触发或不触发click事件。 它会帮助你。

组件.html

<button (click)="handleClick()"></button>

组件.ts

// adding new function
handleClick(): void {
   const canRead = this.permissions.some(per => per === 'read');

   if (canRead === false) {
      this.value.clickEvent();
   }
}

快乐编码!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM