40 lines
971 B
TypeScript
40 lines
971 B
TypeScript
import { Component, HostBinding, HostListener } from '@angular/core';
|
|
|
|
// #docregion
|
|
@Component({
|
|
selector: 'hero-host',
|
|
template: `
|
|
<h1 [class.active]="active">Hero Host in Decorators</h1>
|
|
<div>Heading clicks: {{clicks}}</div>
|
|
`,
|
|
// Styles within (but excluding) the <hero-host> element
|
|
styles: ['.active {background-color: yellow;}']
|
|
})
|
|
export class HeroHostComponent {
|
|
// HostBindings to the <hero-host> element
|
|
@HostBinding() title = 'Hero Host in Decorators Tooltip';
|
|
@HostBinding('class.heading') headingClass = true;
|
|
|
|
active = false;
|
|
clicks = 0;
|
|
|
|
// HostListeners on the entire <hero-host> element
|
|
@HostListener('click')
|
|
clicked() {
|
|
this.clicks += 1;
|
|
}
|
|
|
|
@HostListener('mouseenter', ['$event'])
|
|
enter(event: Event) {
|
|
this.active = true;
|
|
this.headingClass = false;
|
|
}
|
|
|
|
@HostListener('mouseleave', ['$event'])
|
|
leave(event: Event) {
|
|
this.active = false;
|
|
this.headingClass = true;
|
|
}
|
|
}
|
|
// #enddocregion
|