web-dev-qa-db-fra.com

La désinfection angulaire/ng-bind-html ne fonctionne pas?

J'ai un répéteur configuré et je peux obtenir des données à afficher tant qu'il n'y a pas de code HTML dans celui-ci.

J'ai inclus angular-sanitize.js et j'ai essayé d'utiliser ng-bind-html

Mais rien ne s'affiche dans l'intervalle, uniquement dans l'attribut ng-bind-html. Donc, il semble que désinfecter ne fonctionne pas,

J'ai lu que cela doit être ajouté aux dépendances de l'application, mais je ne sais pas où le faire.

Je viens de travailler sur la tutelle sur le site angulaire, je n'ai donc qu'un contrôleur de base configuré à la minute.

51
Tim Webster
  1. Vous devez inclure angular-sanitize.js http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js

  2. Ajoutez 'ngSanitize' à vos dépendances de modules

    var myApp = angular.module ('monApp', ['ngSanitize']);

  3. N'utilisez pas le {{}} dans l'attribut

    <h1 ng-bind-html = "item.title"> </ h1>

  4. Ne pas utiliser $sce.trustAsHtml()

125
Dan

Ma solution à cela était de télécharger le fichier js à partir d'ici

http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js

J'avais utilisé celui que j'ai trouvé dans le dépôt angulaire git, 

7
Tim Webster

Rencontré ce problème lors de l'utilisation d'une directive et la solution n'utilisait pas "remplacer" dans le code. 

`ng-html-bind 'était utilisé sur une div dans la vue templateUrl

appDirectives.directive('helpText', [function () {
return {
    restrict: 'E',
    //replace: true, // With this uncommented it does not work!
    scope: {
        displayText: '='
    },
    templateUrl: '/web/form/helptext',
    link: function (scope) {

    }

};
}]);
1
Amicable

Ma solution était l'opposé de Seglespaan. C'était pour utiliser la version Bower de Angular Sanitize.

bower install angular-sanitize

https://github.com/angular/bower-angular-sanitize

0
skribbz14

J'ai eu un problème similaire, mais le mien était un peu bizarre. Seules les balises d’entrée n’ont pas été rendues alors que tout le reste, y compris 

<h3></h3>
<em></em> 

fait. Après plusieurs heures, j’ai réalisé qu’en dehors de 

angular-sanitize.min.js 

J'avais besoin d'ajouter

textAngular-sanitize.min.js

à mon projet avant que les balises d'entrée fonctionnent. C’était vraiment frustrant, alors j’espère que cela aidera tout le monde dans une situation similaire

0
crazy_abdul