<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); } } } }