Подтвердить что ты не робот

Как напечатать html строку как html

Если, например, я:

var = "<a>Asd</a>";

<span>{{ var }}</span>

Строка печатается как текст, а не как html, поэтому как мне напечатать html?

4b9b3361

Ответ 1

Вы должны использовать директиву ng-bind-html.

Создает привязку, которая будет innerHTML результатом оценки выражение в текущий элемент безопасным способом.

<ANY ng-bind-html="{expression}">
   ...
</ANY>

Ответ 2

Прежде чем использовать директиву 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>

https://docs.angularjs.org/api/ngSanitize

https://docs.angularjs.org/api/ng/directive/ngBindHtml

Ответ 3

Вы также можете попробовать что-то вроде этого:

    app.filter('to_trusted', ['$sce', function($sce) {
      return function(text) {
        return $sce.trustAsHtml(text);
      };
    }]);

а затем, в поле зрения:

    ng-bind-html=" myHTML | to_trusted"