angular.io:如何从子组件中的主机侦听器中排除父组件节点

时间:2018-09-14 15:00:46

标签: angular parent-child event-listener angular-components angular-event-emitter

以下情况:有些组件包含一个删除按钮( PARENT组件)。如果用户单击此按钮,则应打开一个简单的确认模式(儿童组件)。在此模式之外单击将再次关闭确认模式。我试图实现这一点,并为子组件(模态)创建了主机侦听器,但不知道如何排除父组件中的按钮。

@HostListener('document:click', ['$event.target'])
public onClick(targetElement) {
  const clickedOutside = !this.elementRef.nativeElement.contains(targetElement);

  // needs to be extended to exclude the button in parent component 
  if (clickedOutside && this.display) {
    console.log('host listener - closing modal');
    // this.close(false);
  }
}

有人知道如何解决这个问题吗?这是一个简单的角度应用程序的链接:https://stackblitz.com/edit/angular-nbmfee

或者有更好的方法来解决这个问题。预先谢谢你。

0 个答案:

没有答案