98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| (function(app) {
 | |
| 
 | |
| // #docregion
 | |
| app.HeroHostComponent = HeroHostComponent;
 | |
| 
 | |
| HeroHostComponent.annotations = [
 | |
|   new ng.core.Component({
 | |
|     selector: 'hero-host',
 | |
|     template:
 | |
|       '<h1 [class.active]="active">Hero Host</h1>' +
 | |
|       '<div>Heading clicks: {{clicks}}</div>',
 | |
|     host: {
 | |
|       // HostBindings to the <hero-host> element
 | |
|       '[title]': 'title',
 | |
|       '[class.heading]': 'headingClass',
 | |
|       '(click)': 'clicked()',
 | |
| 
 | |
|       // HostListeners on the entire <hero-host> element
 | |
|       '(mouseenter)': 'enter($event)',
 | |
|       '(mouseleave)': 'leave($event)'
 | |
|     },
 | |
|     // Styles within (but excluding) the <hero-host> element
 | |
|     styles: ['.active {background-color: yellow;}']
 | |
|   })
 | |
| ];
 | |
| 
 | |
| function HeroHostComponent() {
 | |
|   this.clicks = 0;
 | |
|   this.headingClass = true;
 | |
|   this.title = 'Hero Host Tooltip content';
 | |
| }
 | |
| 
 | |
| HeroHostComponent.prototype.clicked = function() {
 | |
|   this.clicks += 1;
 | |
| }
 | |
| 
 | |
| HeroHostComponent.prototype.enter = function(event) {
 | |
|   this.active = true;
 | |
|   this.headingClass = false;
 | |
| }
 | |
| 
 | |
| HeroHostComponent.prototype.leave = function(event) {
 | |
|   this.active = false;
 | |
|   this.headingClass = true;
 | |
| }
 | |
| // #enddocregion
 | |
| 
 | |
| })(window.app = window.app || {});
 | |
| 
 | |
| //// DSL Version ////
 | |
| 
 | |
| (function(app) {
 | |
| 
 | |
| // #docregion dsl
 | |
| app.HeroHostDslComponent = ng.core.Component({
 | |
|   selector: 'hero-host-dsl',
 | |
|   template: `
 | |
|     <h1 [class.active]="active">Hero Host (DSL)</h1>
 | |
|     <div>Heading clicks: {{clicks}}</div>
 | |
|   `,
 | |
|   host: {
 | |
|     // HostBindings to the <hero-host-dsl> element
 | |
|     '[title]': 'title',
 | |
|     '[class.heading]': 'headingClass',
 | |
|     '(click)': 'clicked()',
 | |
| 
 | |
|     // HostListeners on the entire <hero-host-dsl> element
 | |
|     '(mouseenter)': 'enter($event)',
 | |
|     '(mouseleave)': 'leave($event)'
 | |
|   },
 | |
|   // Styles within (but excluding) the <hero-host-dsl> element
 | |
|   styles: ['.active {background-color: coral;}']
 | |
| })
 | |
| .Class({
 | |
|   constructor: function HeroHostDslComponent() {
 | |
|     this.clicks = 0;
 | |
|     this.headingClass = true;
 | |
|     this.title = 'Hero Host Tooltip DSL content';
 | |
|   },
 | |
| 
 | |
|   clicked() {
 | |
|     this.clicks += 1;
 | |
|   },
 | |
| 
 | |
|   enter(event) {
 | |
|     this.active = true;
 | |
|     this.headingClass = false;
 | |
|   },
 | |
| 
 | |
|   leave(event) {
 | |
|     this.active = false;
 | |
|     this.headingClass = true;
 | |
|   }
 | |
| });
 | |
| // #enddocregion dsl
 | |
| 
 | |
| })(window.app = window.app || {});
 |