HTML:
this should be replaced
JS:
angular.module('app', []).directive('testD', ['$compile','$sce', function($compile, $sce) { return { restrict: 'E', link: function(scope, element, attrs, controller) { //"case 1" //var testElement = angular.element(''); //"case 2" var testElement = angular.element('{{item.n}}.{{item.label}}'); scope.testClass = attrs.class; scope.items = [ //{n:10,label:$sce.trustAsHtml(' ')}, // "case 1" of "testElement": no any effects (with "case 1" that would be preferred) // "case 2" of "testElement": Error: [$sce:itype] Attempted to trust a non-string value in a content requiring a string: Context: html {n:20,label:' '}, {n:30,label:' '} ]; var testElementCompiled = $compile(testElement)(scope); //"case 3" element.replaceWith(testElementCompiled); //"case 4" //element.replaceWith($sce.trustAsHtml(testElementCompiled)); } } }]).filter('htmlize', ['$sce', function($sce){ return function(val) { return $sce.trustAsHtml(val); }; }]);{{item.n}}
jsfiddle:http: //jsfiddle.net/isnigirev/c2wRq/
问题:1)是否可以在过滤器上下文中使用trustAsHtml?2)如果不使用"ng-bind-html"指令,如何使用"how-to-remove-this-div"类除掉div?