angualr判斷父組件是否定義方法接收子組件Output發送的消息

1、場景

編寫一個組件,有一個click事件,需要對外發送消息,但是有一些模塊不需要點擊事件,此時需要根據這倆種場景定義不同的樣式。重新定義一個@Input()太過繁瑣,此時通過對@Output()這個屬性對象裏面的一些屬性來判斷。

2、實現

EventEmitter類繼承的Subject裏面有個observers屬性,該屬性是個數組,裏面是訂閱者對象Subscriber,可以通過數組的長度來判斷父組件是否訂閱
@Output('onChartClick') 
onChartClick: EventEmitter<number> = new EventEmitter<number>();
  /**
   * 獲取是否有ChartClick的訂閱者
   * @returns {boolean}
   */
  getChartClickSubscriber() {
    return !!this.onChartClick.observers.length;
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章