Angular sanitize / ng-bind-html not working?
I've got a repeater set up and can get data to display as long as there is no html within it.
I've included angular-sanitize.js
and have tried using ng-bind-html
But nothing is displayed within the span, only within the ng-bind-html
attribute. So it looks like sanitise isn't working,
I read that this needs to be added to the app dependencies but am not sure where to do so.
I've just been working through the tut on the angular site so only have a very basic controller set up at the minute.
You need to include the angular-sanitize.js http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js
-
Add 'ngSanitize' to you module dependencies
var myApp = angular.module('myApp', ['ngSanitize']);
-
Don't use the
{{}}
in the attribute<h1 ng-bind-html="item.title"></h1>
Don't use
$sce.trustAsHtml()
My solution to this was to download the js file from here
http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js
I had been using the one I found in the angular git repo,
I experienced a similar issue but mine was a bit weird. Only input tags were not rendered while everything else including
<h3></h3>
<em></em>
did. After several hours i realised that apart from
angular-sanitize.min.js
I needed to add
textAngular-sanitize.min.js
to my project before the input tags worked. It was really frustrating so I hope this helps anyone in a similar situation
Encountered this issue when using a directive and the solution was not using "replace" in the code.
`ng-html-bind' was being used on a div in the templateUrl view
appDirectives.directive('helpText', [function () {
return {
restrict: 'E',
//replace: true, // With this uncommented it does not work!
scope: {
displayText: '='
},
templateUrl: '/web/form/helptext',
link: function (scope) {
}
};
}]);