Вставка html в angularjs

Рейтинг: 0Ответов: 1Опубликовано: 21.09.2014

С помощью php+mysql+angular достаю из базы значения и обрабатываю их. Возникла сложность при обработке html-тегов в тексте, загружаемом из бд. Пытаюсь обработать html таким образом, но безуспешно:

<div ng-repeat="x in names">
<div ng-bind-html="x.Reply">{{ x.Reply }}</div>

Есть варианты, как можно обработать html-код? Сейчас текст выводится вместе с тегами (без обработки html).

Ответы

▲ 1Принят

Примерно вот так должен выглядеть код в ангуляре, соотвественно в $scope.myHTML должны передаваться ваши данные из базы:

angular.module('bindHtmlExample', [])
.controller('ExampleController', ['$scope', '$sce', function($scope, $sce) {
  $scope.sce = $sce;
  $scope.myHTML =
     'I am an <code>HTML</code>string with ' +
     '<a href="#">links!</a> and other <em>stuff</em>';
}]);

А вот так переменная должна выводиться в HTML:

<body ng-app="bindHtmlExample">
    <div ng-controller="ExampleController">
   <p ng-bind-html="sce.trustAsHtml(myHTML)"></p>
  </div>
</body>

Именно такой способ вам подойдёт, чтобы выводить значения из базы с правильной интерпретацией html.