34 lines
		
	
	
		
			676 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			676 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | // #docregion
 | ||
|  | import {Directive, Input, | ||
|  |         OnInit, OnDestroy} from 'angular2/core'; | ||
|  | 
 | ||
|  | import {LoggerService}  from './logger.service'; | ||
|  | 
 | ||
|  | /***************************************/ | ||
|  | let nextId = 1; | ||
|  | 
 | ||
|  | // Spy on any element to which it is applied.
 | ||
|  | // Usage: <div my-spy>...</div>
 | ||
|  | @Directive({selector: '[my-spy]'}) | ||
|  | export class Spy implements OnInit, OnDestroy { | ||
|  | 
 | ||
|  |   private _id = nextId++; | ||
|  |   private _logger:LoggerService; | ||
|  | 
 | ||
|  |   constructor(logger:LoggerService){ | ||
|  |     this._logger = logger; | ||
|  |   } | ||
|  | 
 | ||
|  |   ngOnInit() { | ||
|  |     this._logIt(`onInit`); | ||
|  |   } | ||
|  | 
 | ||
|  |   ngOnDestroy() { | ||
|  |     this._logIt(`onDestroy`); | ||
|  |   } | ||
|  | 
 | ||
|  |   private _logIt(msg:string){ | ||
|  |     this._logger.log(`Spy #${this._id } ${msg}`); | ||
|  |   } | ||
|  | } |