Rendering text to html with Angular

Problem

I am trying to render a text as html using ng-bind as the docs show

<div ng-bind-html="text"></div>

The problem is that Angular removes the style attribute and renders this:

"<mark style='background-color:#FF9DFF;'>APPLE</mark>."

to this:

<mark>APPLE</mark>

How to render as html and keep the styles? I am using Angular version 1.2.6

Problem courtesy of: special0ne

Solution

You may try this function when you're doing ng-bind-html in your controller

$sce.trustAsHtml('myHTML'); //$sce would be the parameter with $scope in module

Hope this will work

$NgSanitizeDocs

Solution courtesy of: Dhaval Marthak

Discussion

First of all include angular-sanitize.js

<div ng-bind-html="deliberatelyTrustDangerousSnippet()"></div>

Then in the controller, add this method

pk.controller("createBlog", function($scope, $sce){
   //ace needs to be injected in the controller.
   $scope.deliberatelyTrustDangerousSnippet = function() {
       return $sce.trustAsHtml($scope.htmlcontent); //html content is th binded content.
   };
})
Discussion courtesy of: Abhishek Prakash

This recipe can be found in it's original form on Stack Over Flow.