Angular:是否可以通过指令删除模板事件“(单击)”?

时间:2019-06-26 01:21:28

标签: angular listener angular-directive

我是动态创建模板的,我有一条指令可以检查用户权限(基本上是读写)

如果我的用户仅具有“读取”权限,是否可以删除附加的单击事件? enter image description here

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

这是指令的代码。 enter image description here

1 个答案:

答案 0 :(得分:0)

请在这里稍微改变一下逻辑。

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

第二,在(单击)事件中,可以直接创建方法调用click,而不是直接调用value.clickEvent(),并且可以在此处具有if-else / switch-case条件来触发click事件或不。它会为您提供帮助。

component.html

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

component.ts

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

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

编码愉快!