【问题标题】:Angular: Is possible to remove template event "(click)" with a directive?Angular:是否可以使用指令删除模板事件“(单击)”?
【发布时间】:2023-03-23 14:05:01
【问题描述】:

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

如果我的用户只有“读取”权限,是否可以删除附加的点击事件?

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

这是指令的代码。

【问题讨论】:

  • 你能把问题中的代码作为文本而不是图像吗?

标签: angular listener angular-directive


【解决方案1】:

请稍微改变一下你的逻辑。

首先,您可以随意拥有@Input() permissions: string[]

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

component.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();
   }
}

编码愉快!

【讨论】:

    猜你喜欢
    • 2017-08-19
    • 1970-01-01
    • 2015-10-06
    • 2018-04-23
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    相关资源
    最近更新 更多