-1
votes

Comment compiler des expressions angulaires HTML dynamiques contenant des expressions angulaires

Je charge HTML contenant une expression angulaire de la base de données. EX DB HTML:

{{dynamicContent}}

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.

en angulaire 1 J'utilisais $ Compiler pour la même chose, comment puis-je y aller avec angulaire 6?

this.sanitizer.bypasssecuritytrusthtml (valeur ); xxx


1 commentaires

Veuillez envisager d'utiliser Domsanitizer # sanitize qui déballe la valeur sûre et utilisez-le directement au lieu de Domsanitizer # Domsanitizer # bypassSecurityTrusthtml qui contourne la sécurité et la confiance La valeur donnée pour être Safe HTML (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.


3 Réponses :


0
votes

C'est à peu près la même chose dans Angular 2 +.

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


5 commentaires

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.



-1
votes

Veuillez utiliser la méthode ci-dessous, je pense que cela fonctionnera pour vous.


4 commentaires

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 innerhtmlchange et attribuer la valeur émise dans dynamiccontent " 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


Laissez-nous Continuez cette discussion en chat .



-1
votes

Vous pouvez faire

<div class="col-md-4 col-sm-4 col-12 offset-md-1"  [innerHtml]="dynamicContent| safeHtml"></div>


1 commentaires

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.