$ sce.trustAsHtml no está evaluando una cadena de javascript (o trustAsJs para el caso);

Mi servidor tiene un punto final json que devuelve una cadena html / js, se ve similar a tal:

"\r\n\r\n
\r\n\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\t\r\n\r\n\t\r\n\t..."

Quiero inyectar esto con angular en un div, y hacer que ejecute el javascript también.

Primer bash:

 function myCtrl ($sce) { $http.get(endpoint).then(function (response) { $scope.html = response.data; $scope.editorHtml = $sce.trustAsHtml($scope.html); //also tried trustAsJs } } 

html:

 

Noté que si devuelvo una cadena html pura esas tags se renderizan, sin embargo, las tags javascript puras NO se evalúan. ¿Cómo logro evadir estas tags? AngularJS versión 1.5.8. ¡Gracias!

Tu HTML tiene algún problema de syntax como id = \ ‘myEditor \ “ . Lo reemplacé con id = \’ myEditor \ ‘ y entonces …

Comprueba este jsfiddle. Agrega angular.min.js y angular-sanitize.min.js a tu proyecto. Usé jquery 2.2.4 para esta muestra.

HTML:

 

{{html}}

{{greeting}}

JS:

 var myApp = angular.module('myApp', ['ngSanitize']); var data = "\r\n\r\n
\r\n\r\n\t\thi html\r\n\t
\r\n\r\n\r\n\r\n\r\t"; var script = "

Debes incluir jQuery para que esto funcione. Además, no olvides ngSanitize.

 Plunker 

http://plnkr.co/edit/zEXXCB459Tp25VJiyyZb?p=preview