Je charge HTML contenant une expression angulaire de la base de données.
EX DB HTML: J'ai déjà NGModel pour "DynamicContent" dans mon composant.
Problème: Lorsque je charge HTML de DB IT Impression comme HTML ordinaire.
Il devrait évaluer la valeur HTML et imprimer NGModel. P> en angulaire 1 J'utilisais $ Compiler pour la même chose, comment puis-je y aller avec angulaire 6? P> this.sanitizer.bypasssecuritytrusthtml (valeur ); p> p> p>
3 Réponses :
C'est à peu près la même chose dans Angular 2 +. P>
La syntaxe droite est La désinfection sera effectuée automatiquement, empêchant les étiquettes de script diaboliques d'être injectée dans votre div. Source: Syntaxe de modèle angulaire P>
Il imprime HTML, mais l'interpolation ne fonctionne pas. L'expression angulaire ne sont pas évaluées qu'il est imprimée en tant que texte brut.
Oui comme je l'ai écrit ici chat.stackoverflow.com/transcript/message/45094468#45094468#45094468#45094468 Vous ne voulez pas être capable d'interpoler des variables dans HTML dynamique, uniquement dans HTML statique
Y a-t-il une autre façon de faire ce genre de choses?
Si vous n'avez pas d'autre choix que de charger HTML de votre dB (qui est assez inhabituel), je vous suggère de remplacer les variables manuellement avant de rendu ou de stocker le code HTML comme arbre d'éléments de votre DB, puis de les recréer en utilisant angular.io/api/core/renderer2 et une fonction récursive
Il a spécifiquement demandé quelque chose de similaire avec $ compilation de Angularjs. Il a besoin d'interpolation. C'est juste une réponse inutile.
Veuillez utiliser la méthode ci-dessous, je pense que cela fonctionnera pour vous. P>
Mauvais cas et parenthèse inutile
@Youkouleley oui votre droit si vous voulez une liaison à deux voies, alors il est utile
Parenthèses signifie "attendre un événement émis par
Laissez-nous Continuez cette discussion en chat .
innerhtmlchange CODE> et attribuer la valeur émise dans
dynamiccontent code>" ce qui n'a aucun sens puisqu'il n'y a aucun sentiment d'émetteur d'événement. De sorte que les parenthèses sont 100% inutiles
Vous pouvez faire
<div class="col-md-4 col-sm-4 col-12 offset-md-1" [innerHtml]="dynamicContent| safeHtml"></div>
Il imprime HTML, mais l'interpolation ne fonctionne pas. L'expression angulaire ne sont pas évaluées qu'il est imprimée en tant que texte brut.
Veuillez envisager d'utiliser
Domsanitizer # sanitize code> qui déballe la valeur sûre et utilisez-le directement i> au lieu de
Domsanitizer # Domsanitizer # bypassSecurityTrusthtml code> qui contourne la sécurité et la confiance La valeur donnée pour être Safe HTML i> (Notez que cela peut exposer votre application aux risques de sécurité XSS). Voir angular.io/aplatform-browser/domsanitizer#anitize et < Un href = "https://angular.io/api/platform-browser/domsanitizer#bypassSecurityTrusthtml" rel = "nOfollow noreferrer"> angulaire.io/api/platform-Browser/... Pour plus d'informations.