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>