Je reçois des données JSON du serveur, l'un des champs contient du code HTML échappé (un corps de courrier électronique en fait):
<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r\n</head>\r\n<body dir="auto">\r\n<div>Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito</div>\r\n<div><br>\r\n<a
(plus...)
Je deviens fou d'essayer de le rendre avec AngularJs.
Ce qui suit ne fonctionne pas:
<div ng-bind-html-unsafe="mail.htmlbody"></div>
Ce qui, à mon avis, est normal car le code HTML est en fait échappé. Dois-je le décaper d'abord? Est-ce que Angular est capable de libérer du code HTML avec certains services disponibles?
Si j'utilise $ sce comme ceci:
scope.mail.htmlbody = $sce.trustAsHtml(scope.mail.htmlbody);
Le code source HTML est affiché, inspectant l'élément je peux voir que le contenu est cité. En d'autres termes, dans la page, le code source HTML est affiché à la place du code HTML en cours de rendu. Peut-être que je manque quelque chose?
En même temps $sce
_ service a été introduit (valeur angulaire 1.2), prise en charge de ng-bind-html-unsafe
La directive a été supprimée. La nouvelle directive est ng-bind-html
. Si vous utilisez ceci, le code devrait fonctionner comme documenté :
<div ng-bind-html="mail.htmlbody"></div>
Utilisez cette directive:
<div ng-bind-html="mail.htmlbody"></div>
N'oubliez pas d'utiliser angular sanitize sur votre module d'application.
vérifier ici: http://docs.angularjs.org/api/ngSanitize