Ответ 1
Вы должны использовать директиву ng-bind-html
.
Создает привязку, которая будет innerHTML результатом оценки выражение в текущий элемент безопасным способом.
<ANY ng-bind-html="{expression}">
...
</ANY>
Если, например, я:
var = "<a>Asd</a>";
<span>{{ var }}</span>
Строка печатается как текст, а не как html, поэтому как мне напечатать html?
Вы должны использовать директиву ng-bind-html
.
Создает привязку, которая будет innerHTML результатом оценки выражение в текущий элемент безопасным способом.
<ANY ng-bind-html="{expression}">
...
</ANY>
Прежде чем использовать директиву ng-bind-html, вы должны включить службу $sanitize, иначе она выведет ошибку.
Ошибка: $sce: небезопасно Требовать безопасного/надежного значения Попытка использовать небезопасную ценность в безопасном контексте.
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"