html-attributes.directive.ts 556 B

123456789101112131415161718192021
  1. import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';
  2. import { Attributes } from '../models/evt-models';
  3. @Directive({
  4. selector: '[evtHtmlAttributes]',
  5. })
  6. export class HtmlAttributesDirective implements OnInit {
  7. @Input('evtHtmlAttributes') attributes: Attributes;
  8. constructor(
  9. private el: ElementRef,
  10. private renderer: Renderer2,
  11. ) {
  12. }
  13. ngOnInit() {
  14. Object.keys(this.attributes).forEach(key => {
  15. this.renderer.setAttribute(this.el.nativeElement, `data-${key}`, this.attributes[key]);
  16. });
  17. }
  18. }