2019-06-30 02:34:15 -04:00
|
|
|
/* tslint:disable directive-selector directive-class-suffix */
|
2017-02-22 18:13:21 +00:00
|
|
|
// #docplaster
|
|
|
|
import { Directive, ElementRef, EventEmitter, Output } from '@angular/core';
|
|
|
|
|
|
|
|
@Directive({selector: '[myClick]'})
|
|
|
|
export class ClickDirective {
|
|
|
|
// #docregion output-myClick
|
|
|
|
@Output('myClick') clicks = new EventEmitter<string>(); // @Output(alias) propertyName = ...
|
2019-04-24 15:27:24 +03:00
|
|
|
// #enddocregion output-myClick
|
2017-02-22 18:13:21 +00:00
|
|
|
|
|
|
|
toggle = false;
|
|
|
|
|
|
|
|
constructor(el: ElementRef) {
|
|
|
|
el.nativeElement
|
|
|
|
.addEventListener('click', (event: Event) => {
|
|
|
|
this.toggle = !this.toggle;
|
|
|
|
this.clicks.emit(this.toggle ? 'Click!' : '');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// #docregion output-myClick2
|
|
|
|
@Directive({
|
|
|
|
// #enddocregion output-myClick2
|
|
|
|
selector: '[myClick2]',
|
2019-04-24 15:27:24 +03:00
|
|
|
// tslint:disable: no-outputs-metadata-property
|
2017-02-22 18:13:21 +00:00
|
|
|
// #docregion output-myClick2
|
|
|
|
outputs: ['clicks:myClick'] // propertyName:alias
|
|
|
|
})
|
|
|
|
// #enddocregion output-myClick2
|
2019-04-24 15:27:24 +03:00
|
|
|
// tslint:enable: no-outputs-metadata-property
|
2017-02-22 18:13:21 +00:00
|
|
|
export class ClickDirective2 {
|
|
|
|
clicks = new EventEmitter<string>();
|
|
|
|
toggle = false;
|
|
|
|
|
|
|
|
constructor(el: ElementRef) {
|
|
|
|
el.nativeElement
|
|
|
|
.addEventListener('click', (event: Event) => {
|
|
|
|
this.toggle = !this.toggle;
|
|
|
|
this.clicks.emit(this.toggle ? 'Click2!' : '');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|