55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
// #docregion
 | 
						|
import {Component}         from 'angular2/core';
 | 
						|
import {PeekABooComponent} from './peek-a-boo.component'
 | 
						|
import {LoggerService}  from './logger.service';
 | 
						|
 | 
						|
@Component({
 | 
						|
  selector: 'peek-a-boo-parent',
 | 
						|
  template: `
 | 
						|
  <div class="parent">
 | 
						|
    <h2>Peek-A-Boo</h2>
 | 
						|
 | 
						|
    <button (click)="toggleChild()">
 | 
						|
      {{hasChild ? 'Destroy' : 'Create'}} PeekABooComponent
 | 
						|
    </button>
 | 
						|
    <button (click)="updateHero()" [hidden]="!hasChild">Update Hero</button>
 | 
						|
 | 
						|
    <peek-a-boo *ngIf="hasChild" [name]="heroName">
 | 
						|
    </peek-a-boo>
 | 
						|
 | 
						|
    <h4>-- Lifecycle Hook Log --</h4>
 | 
						|
    <div *ngFor="#msg of hookLog">{{msg}}</div>
 | 
						|
  </div>
 | 
						|
  `,
 | 
						|
  styles: ['.parent {background: moccasin; padding: 10px; margin:100px 8px}'],
 | 
						|
  directives: [PeekABooComponent],
 | 
						|
  providers: [LoggerService]
 | 
						|
})
 | 
						|
export class PeekABooParentComponent {
 | 
						|
 | 
						|
  hasChild = false;
 | 
						|
  hookLog:string[];
 | 
						|
 | 
						|
  heroName = 'Windstorm';
 | 
						|
  private _logger:LoggerService;
 | 
						|
 | 
						|
  constructor(logger:LoggerService){
 | 
						|
    this._logger = logger;
 | 
						|
    this.hookLog = logger.logs;
 | 
						|
  }
 | 
						|
 | 
						|
  toggleChild() {
 | 
						|
    this.hasChild = !this.hasChild;
 | 
						|
    if (this.hasChild) {
 | 
						|
      this.heroName = 'Windstorm';
 | 
						|
      this._logger.clear(); // clear log on create
 | 
						|
    }
 | 
						|
    this._logger.tick();
 | 
						|
  }
 | 
						|
 | 
						|
  updateHero() {
 | 
						|
    this.heroName += '!';
 | 
						|
    this._logger.tick();
 | 
						|
  }
 | 
						|
}
 |