Captura de evento angular 2 entre componentes irmãos

Eu apenas comecei a aprender Angular 2, e esta é a minha primeira pergunta sobre estouro de pilha, então aqui vai ...

Eu tenho um componente externo com dois componentes internos aninhados. Eu tenho um botãoInnerComponent1 que, quando clicado, dispara um evento que o componente externo captura, que passa o valor (sempre verdadeiro) paraInnerComponent2. InnerComponent2 é exibido (* ngIf) com base nesse valor.

Funciona.

Buuuut ..InnerComponent2 possui um botão que, quando clicado, torna esse valor falso, o que oculta o componente.

Isso também funciona.

Mas uma vez que eu escondiInnerComponent2, o botãoInnerComponent1 que exibeInnerComponent2 não funciona mais. Não estou vendo nenhum erro e confirmei que o componente externo ainda está recebendo os eventos.

Aqui está um plnkr que mostra o cenário:http://plnkr.co/edit/X5YnNVm0dpFwA4ddv4u7?p=preview

Alguma ideia?

Muito obrigado.

Componente externo

//our root app component
import {Component} from 'angular2/core';
import {Inner1Component} from 'src/inner1';
import {Inner2Component} from 'src/inner2';

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <p>OuterComponent</p>
    <inner1 (show2)="show2Clicked = $event"></inner1>
    <inner2 [showMe]="show2Clicked"></inner2>
  `,
  directives: [Inner1Component, Inner2Component]
})
export class App {
  show2Clicked: boolean;
}

InnerComponent1

import {Component, EventEmitter, Output} from 'angular2/core'

@Component({
  selector: 'inner1',
  providers: [],
  template: `
    <p>inner1</p>
    <button (click)="showInner2()">Show inner2</button>
  `,
  directives: []
})
export class Inner1Component {
  @Output() show2 = new EventEmitter<boolean>();

  showInner2() {
    this.show2.emit(true);
  }
}

InnerComponent2

import {Component, Input} from 'angular2/core'

@Component({
  selector: 'inner2',
  providers: [],
  template: `
    <div *ngIf="showMe">
      <p>Inner2</p>
      <button (click)="showMe = false">Cancel</button>
    </div>
  `,
  directives: []
})
export class Inner2Component {
  @Input() showMe: boolean;
}

questionAnswers(2)

yourAnswerToTheQuestion