Maison > interface Web > js tutoriel > Comment puis-je injecter en toute sécurité des fragments HTML dynamiques dans les vues AngularJS à partir de mon contrôleur ?

Comment puis-je injecter en toute sécurité des fragments HTML dynamiques dans les vues AngularJS à partir de mon contrôleur ?

Mary-Kate Olsen
Libérer: 2024-12-22 21:05:16
original
348 Les gens l'ont consulté

How Can I Safely Inject Dynamic HTML Fragments into AngularJS Views from My Controller?

Injecter des fragments HTML dans des vues à partir de contrôleurs AngularJS

AngularJS propose différentes manières de modifier dynamiquement la vue en fonction de la logique du contrôleur. Dans certains scénarios, il est nécessaire de générer dynamiquement des fragments HTML au sein du contrôleur et de les afficher dans la vue. Pour y parvenir, il est nécessaire de considérer comment AngularJS interprète le contenu injecté.

Comprendre le rendu HTML AngularJS

Lors de la définition d'une propriété de modèle sur un fragment HTML, AngularJS s'échappe automatiquement les entités HTML pour des raisons de sécurité. Cependant, si l'intention est d'afficher le HTML sous forme de contenu réel, cet échappement présente un défi. Le HTML résultant est rendu sous forme de chaîne entre guillemets, empêchant son exécution.

Solutions pour le rendu de fragments HTML dynamiques

Pour surmonter cette limitation, AngularJS propose les solutions suivantes :

ng:bind-html (Angulaire 1.x)

Utilisez la directive ng:bind-html dans le HTML pour restituer le contenu HTML souhaité. Cependant, cette approche soulève des vulnérabilités de sécurité potentielles et nécessite l'utilisation de $sce ou ngSanitize.

$sce

Utilisez $sce.trustAsHtml() dans le contrôleur pour marquer la chaîne HTML comme étant sûre pour le rendu. Cette méthode permet d'injecter le contenu dans la vue sans s'échapper :

$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml(someHtmlVar);
Copier après la connexion

ngSanitize

Incorporer la ressource angulaire-sanitize.min.js dans le HTML. De plus, incluez ngSanitize dans le module AngularJS dans un fichier JavaScript :

angular.module('myApp', ['myApp.filters', 'myApp.services', 
    'myApp.directives', 'ngSanitize'])
Copier après la connexion

En employant ces techniques, vous pouvez insérer efficacement des fragments HTML générés dynamiquement dans les vues AngularJS à partir du contrôleur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal