DOM Манипуляции с помощью непосредственного изменения свойств на nativeElement
не считаются хорошей практикой.Это также не будет работать в некоторых случаях, таких как Web Workers и Server Rendering с использованием Angular Universal.
Более безопасный способ сделать это - использовать Renderer2
.
import { ..., ElementRef, ViewChild, Renderer2, ... } from '@angular/core';
...
export class AdvertisementDirective {
@ViewChild('templateRefName') el: ElementRef;
constructor(
private renderer: Renderer2
) {
}
ngOnInit() {
this.renderer.setStyle(this.el.nativeElement, 'background', 'yellow');
this.renderer.setProperty(this.el.nativeElement, 'innerHTML', '<p>Hello World<p>');
}
}
И в шаблоне:
<div #templateRefName></div>