Si juste par exemple je fais:
var = "<a>Asd</a>";
<span>{{ var }}</span>
La chaîne est imprimée comme du texte et non en html, alors comment imprimer le html?
Vous devez utiliser ng-bind-html
directive .
Crée une liaison qui innerHTML le résultat de l'évaluation de l'expression dans l'élément actuel de manière sécurisée.
<ANY ng-bind-html="{expression}">
...
</ANY>
Avant d'utiliser la directive ng-bind-html , vous devez inclure la $ sanitize ou il générera une erreur.
Erreur: $ sce: unsafe Exiger une valeur sûre/de confiance Tentative d'utilisation d'une valeur non sûre dans un contexte sûr.
Error: [$sce:unsafe] http://errors.angularjs.org/1.4.5/$sce/unsafe
at Error (native)
Le droit chemin:
<script src="angular.js"></script>
<script src="angular-sanitize.js"></script>
var myApp = angular.module('app', ['ngSanitize']);
myApp.controller('MyController', ['$scope', function($scope) {
$scope.myHTML = '<a href="#">Hello, World!</a>';
}]);
<div ng-controller="MyController">
<p ng-bind-html="myHTML"></p>
</div>
Vous pouvez également essayer quelque chose comme ça:
app.filter ('to_trusted', ['$ sce', function ($ sce) { return fonction (texte) { return $ sce. trustAsHtml (texte); }; );
puis, en vue:
ng-bind-html = "myHTML | to_trusted"