<div appDestacado>Oferta de la semana</div>
ng g[enerate] d[irective] directivas/destacado --spec=false
import { Directive } from '@angular/core';
@Directive({
selector: '[appDestacado]'
})
export class DestacadoDirective {
constructor( private el: ElementRef) {
const nativeElement = el.nativeElement;
nativeElement.style.fontSize = '28px';
nativeElement.style.color = 'red';
nativeElement.style.textAlign = 'center';
nativeElement.style.border = '2px solid red';
}
}
import {Directive, ElementRef, Input, OnInit} from '@angular/core';
@Directive({
selector: '[appDestacado]'
})
export class DestacadoDirective implements OnInit {
@Input('appDestacado') userColor: string;
constructor(private el: ElementRef) { }
ngOnInit(): void {
const nativeElement = this.el.nativeElement;
nativeElement.style.fontSize = '28px';
nativeElement.style.color = this.userColor || 'red';
nativeElement.style.textAlign = 'center';
nativeElement.style.border = '2px solid ' + (this.userColor || 'red');
}
}
<div class="container main.container">
<h1>Demo <small>directivas</small></h1>
<hr>
<app-clases></app-clases>
<br><br>
<div appDestacado>Oferta de la semana</div>
<div [appDestacado]="'violet'">Oferta de la semana</div>
</div>
ng g[enerate] d[irective] directivas/nult --skipTests
<div class="container main.container">
<h1>Demo <small>directivas</small></h1>
<hr>
<app-clases></app-clases>
<br><br>
<p *appMult="5">
Saludos
</p>
</div>
import { Directive } from '@angular/core';
@Directive({
selector: '[appMult]'
})
export class MultDirective {
constructor(
private templateRef: TemplateRef<any>,
private viewContainer: ViewContainerRef) {
@Input() set appMult(numero: number) {
for (let i = 0; i < numero; i++) {
this.viewContainer.createEmbeddedView(this.templateRef);
}
}
}
}