ng-bind-html не работает внутри пользовательского интерфейса

Я разрабатываю угловое приложение с угловым 1.4 и ui.router 0.2.8. Я использую ng-bind-html для печати сообщений об ошибках во время проверки формы. Но это не работает. В моем контроллере

$scope.nameError = $sce.trustAsHtml("<p class='form-error'>Please enter your full name</p>"); 

На моей странице HTML, внутри

<span ng-bind-html="nameError"></span>

Не показывая ошибок. Как я могу решить эту проблему и спасибо заранее?

2 ответа

У вас в приложении установлено ngSanitize? Подобно:

   var app = angular.module('app', ['ngSanitize']);
    app.controller('myController', function($scope, $sce) {
    $scope.nameError = $sce.trustAsHtml("<p class='form-error'>
Please enter your full name</p>"); 
    });

Вы можете попробовать эту ссылку:

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular-sanitize.js"></script>

Либо вы можете создать фильтр, подобный упомянутому @Und3rTow, либо создать функцию для его преобразования

$scope.trustFunc = function(nameError){
     return $sce.trustAsHtml("<p class='form-error'>Please enter your full name</p>");
}

<span ng-bind-html="trustFunc(nameError)"></span>

angular.module("app",[])
.controller("ctrl",function($scope,$sce){
  
$scope.trustFunc = function(nameError){
 return $sce.trustAsHtml("<p class='form-error'>Please enter your full name</p>");
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
 <span ng-bind-html="trustFunc(nameError)"></span>
</div>

Другие вопросы по тегам