在Angular2中,如何根据在该组件中收到的事件隐藏组件?

时间:2016-07-20 10:37:44

标签: angular

我有以下代码:

<my-component (show)="$event"></my-component>

$event属性是一个布尔值,我想用它来隐藏/显示这个组件。

如果不在课程中编写新代码,是否可以不渲染<my-component> ?也就是说,我最好只是在模板中有逻辑,而不是在类本身。

2 个答案:

答案 0 :(得分:5)

只需听取一个事件并根据事件设置hidden属性:

class MyComponent {
  @HostBinding('hidden')
  isHidden:boolean = false;

  @HostListener('someevent')
  someEventHandler(event) {
    this.isHidden = event;
  }
}

答案 1 :(得分:0)

您可以在MyComponent中使用类成员并绑定隐藏属性,而不是使用事件:

<my-component #cmp [hidden]="cmp?.hidden"></my-component>
  

使用Plunker作为示例用法