In meiner Angular 4-App habe ich eine Seite, deren Inhalt in einem JSON (teilweise CSS-Definitionen und teilweise HTML-Markup) unter einer bestimmten URL auf meinem Server gespeichert ist. Also habe ich eine Shell-Komponente gemacht, um den Inhalt in Angular zu hosten.Wie füge ich ein internes Stylesheet (nicht inline) zur Laufzeit in Angular hinzu?
Für HTML musste ich <div [innerHTML]="my_html"></div>
in der Vorlage und this.my_html = this.sanitizer.bypassSecurityTrustHtml(my_html);
im Skript verwenden.
Für CSS, habe ich versucht,
<style [innerHTML]="my_css"></style>
<style>{{my_css}}</style>
mit verschiedenen Kombinationen von sanitization aber Angular immer das <style>
Element gefährden. Insbesondere:
- in diesem Fall entfernt es das Element aus der Vorlage, aber es hängt es nicht an den Kopf. Das Element verschwindet einfach.
- in diesem Fall entfernt es das Element aus der Vorlage und hängt es an den Kopf wie folgt
<style>{%BLOCK%}</style>
. Mit anderen Worten, das Element ist nutzlos.