Angulaire 2 désactiver désinfecter
Je suis en train d'essayer de rendre base64 chaîne en <img src='data:image/png;base64,${Here}'
.
Mais toujours quand j'essaie de le rendre, ng2 désinfection de mon base64 chaîne avant de le rendre ajoute quelque chose dans mon de la valeur avant de la montrer dans les DOM.
J'ai trouvé une solution(à l'aide de DomSanitizer) mais il ne fonctionne pas sur les versions les plus récentes.
Voici mon balisage:
<img alt="RegularImage" src="data:image/png;base64,{{imgBase64}}">
Et voici ma pièce:
imgBase64="SomeBase64StringFetchedSomehow";
Mais angular2 s'affiche dans la console message suivant - WARNING: sanitizing unsafe URL value
Comment prévenir NG2 de désinfection ma chaîne base64?
Mise à jour
get getImg() {
return this._sanitizer.sanitize(SecurityContext.URL,`data:image/png;base64,${this.img}`);
}
Ne résout pas ce problème. DomSanitizer classe n'existe plus dans RC6
Pourquoi n'êtes-vous pas à l'aide de final au lieu de RC.6?
Juste tryied avec le RC.7 et la version de angular2.
Juste tryied avec le RC.7 et la version de angular2.
OriginalL'auteur Maris | 2016-09-16
Vous devez vous connecter pour publier un commentaire.
Vous devez indiquer explicitement Angular2 que la chaîne est de confiance
https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
Voir aussi En RC.1 certains styles ne peuvent pas être ajoutés à l'aide de la syntaxe de liaison
Sanitizer
mais il a échoué avec le même message d'erreur.return this._sanitizer.sanitize(SecurityContext.URL,
de données:image/png;base64,${ce.img});
Bien sûr, il est. Vérifier le lien dans ma réponse (import info est en bas du site). (Auparavant, il a été nommé
DomSanitizationService
)Module " ".../node_modules/@angulaire/core/indice"' n'a pas exporté de membre "DomSanitizer'
Comme je l'ai mentionné ci-dessus, il a été rebaptisé. Je suppose que dans le RC.7 donc, vous avez probablement besoin d'utiliser
DomSanitizationService
ou peut-êtreDomSanitizerService
(ne me souviens pas exactement) (ou mise à jour de final)J'ai essayé avec RC7 version et la version de Angular2 et il n'y a toujours pas de
DomSanitizer
/DomSanitizationService
/DomSanitizerService
. Cependant, il estSanitizer
, mais ça ne fonctionne pas. Je suis encore en train -ARNING: sanitizing unsafe URL value data:...
OriginalL'auteur Günter Zöchbauer
Après quelques heures de recherches j'ai finalement trouvé que la dernière version de ng2 il n'y a pas de
DomSanitizer
qui peut être injectée à l'aide de DI, cependant, il estSanitizer
. Voici donc l'utilisation:Comme vous pouvez le voir le premier argument de
sanitize
méthode estSecurityContext
exemple, qui, fondamentalement, est enum. Donc, pour l'instantSanitizer
est une usine qui choisir l'application à utiliser en fonction desSecurityContext
Dans mon cas, j'ai eu un problème que mon base64 a été désinfectés avant de les obtenir, c'est pourquoi je n'étais pas capable de le faire fonctionner.
OriginalL'auteur Maris
Après avoir essayé en vain d'obtenir le bypassSecurityTrust... fonctions de travail, j'ai eu recours à la suivante:
Pas si le code html est de confiance, par exemple, il a été créé dans un CMS.
OriginalL'auteur John Langford