たとえば、私がする場合:
var = "<a>Asd</a>";
<span>{{ var }}</span>
文字列はhtmlではなくテキストのように印刷されます。htmlを印刷するにはどうすればよいですか?
式を安全な方法で現在の要素に評価した結果をinnerHTMLするバインディングを作成します。
<ANY ng-bind-html="{expression}">
...
</ANY>
ng-bind-htmlディレクティブを使用する前に、$ sanitizeサービスを含める必要があります。そうしないと、エラーがスローされます。
エラー:$ sce:unsafe安全/信頼できる値が必要です安全なコンテキストで安全でない値を使用しようとしています。
Error: [$sce:unsafe] http://errors.angularjs.org/1.4.5/$sce/unsafe
at Error (native)
正しい方法:
<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>
次のようなこともできます:
app.filter( 'to_trusted'、['$ sce'、function($ sce){ return function(text){ return $ sce。 trustAsHtml(text); }; );
そして、ビューで:
ng-bind-html = "myHTML | to_trusted"