知道@output事件是否在父组件中绑定

时间:2017-03-10 14:18:55

标签: angular

我有一个@Output labelClicked = new EventEmitter();,我想知道这个事件是否已在父组件中绑定(<myComponent (labelClicked)="open($event)"></myComponent>),因此我可以使用cursor: pointer设置我的组件样式。

这可能吗?

1 个答案:

答案 0 :(得分:5)

解决方案:

<span class="label" [class.clickable]="labelClicked.observers.length > 0">{{label}}</span>

(css:.clickable { cursor: pointer; }

解释:

根据我的理解,您希望检测事件处理程序是否附加了组件。如果附加了你想要添加一些其他类,则无需附加该类。

我刚刚快速检查了实际上有角度的@output变量是否包含有关事件附加了多少处理程序的信息

enter image description here

enter image description here

在上面的图像我已经附加处理程序与提交事件和关闭事件没有附加任何处理程序。所以你可以检查这个数组并使用render

分配类