在角度分量中检测实际事件订阅者

时间:2019-10-30 16:45:43

标签: javascript angular rxjs

我在Angular应用程序中遇到问题,希望这里有人可以帮助我。 我正在Angular(8+)中构建一个动态表单组件,其中各种表单控件可能具有也可能没有事件侦听器。 在其中一种情况下,我正在使用信息来更改组件的外观(即,如果组件实例恰好具有事件侦听器,则光标将从默认值变为指针)。

为此,我使用的是在线阅读的技术:

    get iconRightClickable(): boolean {
      return this.iconRightClick.observers.length > 0 
    }

成为“ iconRightClick”我的EventEmitter。

在我的动态表单中,我被迫以类似于以下方式设置事件监听器:

    <component 
      (iconRightClick)="params.iconRightClick"
    </component>

在此代码中,“ params.iconRightClick”可能会或未定义,但是对观察者数量的检查将以完全相同的方式变为1。从观察者的实际内容来看,这两种情况(未定义的参数和已定义的参数)完全相同。

我如何才能检测到事件回调实际上为null或未定义以便正常运行?

1 个答案:

答案 0 :(得分:0)

我认为您不应该在输出事件绑定中使用nullundefined。我可能会使用模板引用变量来获取对组件的引用并有条件地在代码中订阅。