HostBinding and HostListener in Angular.Js
Given below are the description for HostListener and HostBinding in the official angular website.
HostListener - It declares a host listener. Decorator that declares a DOM event to listen for and provides a handler method to run when that event occurs.
HostBinding- Decorator that marks a DOM property as a host-binding property and supplies configuration metadata.Angular automatically checks host property bindings during change detection and if a binding changes it updates the host element of the directive.
The role property declared with @HostBinding to host element<p> is binded in this example it listens to click event declared with @HostListener of the host element<p>.
import {Component,HostListener,Directive,HostBinding,Input} from '@angular/core';
The code in directive.ts file is given below:
@Directive({selector: '[myDir]'})
export class HostDirective {
@HostBinding('attr.role') role = 'admin';
@HostListener('click') onClick() {
this.role=this.role=='admin'?'guest':'admin';
}
}
Appcomponent.ts file contains the following code:
import { Component,ElementRef,ViewChild } from '@angular/core';
import {HostDirective} from './directives';
@Component({
selector: 'my-app',
template:
`
<p myDir>Host Element
<br><br>
I'm(HostListener) listening to host's <b>click event</b> declared with @HostListener
<br><br>
I'm(HostBinding) binding <b>role property</b> to host element declared with @HostBinding and checking host's property binding updates, If any property change is found, I will update it.
</p>
<div> Open DOM of host element, click host element(in UI) and check role attribute(in DOM) </div>
`,
directives: [HostDirective]
})
export class AppComponent {}
Comments
0 comments
Please Sign in or Create an account to Post Comments