Open web-dave opened 7 years ago
ng g d books/shared/order-btn
import { Directive, Input, ElementRef, OnChanges, HostListener } from '@angular/core';
@Directive({
selector: '[orderBtn]'
})
export class OrderBtnDirective implements OnChanges {
orderBtnElement: HTMLButtonElement = document.createElement('button');
@Input() orderBtn;
ngOnChanges(changeObj) {
this.orderBtnElement.innerText = this.orderBtn;
}
@HostListener('mouseenter') onMouseEnter() {
console.log('mouseenter');
}
@HostListener('mouseleave') onMouseLeave() {
console.log('mouseleave');
}
constructor(private elementRef: ElementRef) {
elementRef.nativeElement.appendChild(this.orderBtnElement);
this.orderBtnElement.onclick = () => {
console.log('this.orderBtn:', this.orderBtn)
}
}
}
<div class="panel-body" orderBtn="Buy me!!">
...
</div>
<div class="panel-body" [orderBtn]="book">
...
</div>
order-btn
directive