我有一個顯示數據表的子組件。我想在每一行上都提供一個「選擇」按鈕,但只有當表格顯示在需要按鈕的上下文中時,即該表格可以獨立顯示或作爲表單字段的選擇顯示。計算一個事件綁定的次數
我的想法是使用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