AngularJS: chaîne html avec un style personnalisé

Je veux lier une chaîne HTML avec un style personnalisé au DOM. Cependant ngSanitize supprime le style de la chaîne.

Par exemple:

Dans le contrôleur:

 $scope.htmlSsortingng = "123!"; 

Et dans DOM:

 

Oubliera l’atsortingbut de style. Le résultat ressemblera à ceci:

 
123!

Au lieu de:

 
123!

Question: Comment puis-je y arriver?

Comme déjà mentionné, @Beyers, vous devez utiliser $sce.trustAsHtml() , pour l’utiliser directement dans le DOM, vous pourriez le faire comme ça, JS / partie contrôleur:

 $scope.trustAsHtml = function(ssortingng) { return $sce.trustAsHtml(ssortingng); }; 

Et dans la partie DOM / HTML

 

Qu’en est-il du filtre angular personnalisé? Cela fonctionne en 1.3.20

 angular.module('app.filters') .filter('trusted', function($sce){ return function(html){ return $sce.trustAsHtml(html) } }) 

Utilisez-le comme

Si vous faites confiance au $sce.trustAsHtml HTML, vous pouvez utiliser $sce.trustAsHtml pour faire confiance au $sce.trustAsHtml HTML. Exemple rapide:

Dans le contrôleur (n’oubliez pas d’injecter $ sce dans votre contrôleur):

 $scope.htmlSsortingng = $sce.trustAsHtml("123!"); 

Et dans DOM, même chose que ce que vous aviez:

 

Vous devez créer votre propre directive personnalisée qui contiendra le code HTML en tant que template ou le référencer avec templateUrl . Dans le code HTML, vous pouvez utiliser ng-style pour append un object à votre style.

Voici un exemple: http://jsfiddle.net/tomepejo/5AsQE/

Vous pouvez utiliser les listes blanches textAngular , couse ngSanitize ne sont pas flexibles (voir ce problème pour plus de détails: https://github.com/angular/angular.js/issues/5900 )