我有一个显示数据表的子组件。我想在每一行上都提供一个“选择”按钮,但只有当表格显示在需要按钮的上下文中时,即该表格可以独立显示或作为表单字段的选择显示。计算一个事件绑定的次数
我的想法是使用EventEmitter作为“选择”按钮,并且只有在有事件的任何订阅者时才显示按钮。这是如何实现的,还是有更好的方法来做到这一点?
我使用角2 rc.5
编辑:实施例编号:
@Component({directives: [Child], template: "<child (select)="onSelect()"></child>"})
class Parent {
}
@Component({selector: "child", template: "<div *ngIf="showSelect" (click)="onSelect()">select</div>"})
class Child {
@Output("select") select: EventEmitter<any> = new EventEmitter<any>();
get showSelect() {
// return true if there is any subscription to Output("select")
}
}
在儿童组分DIV只应显示如果父定义了一个侦听到该“选择”事件。在这种情况下,它通过将其绑定到模板中来实现,但如果有人直接在Child组件的“select”属性上调用.subscribe(),它也应该可以工作。
谢谢你的回答。你能解释一下,我是如何从EventEmitter获得refCount()的? – Normalo
当然,抱歉没有更好地解释它。你能否添加一个小例子的代码? –
我向我的问题添加了示例代码。顺便说一句,“最佳选择”是什么意思?该解决方案是否存在任何缺陷? – Normalo