您好我正在尝试通过角度范围传递javascript代码,但在视图页面上它呈现为文本。我也尝试了ng-Sanitize,但它也没有用。
<div id="xv-embed-13042533"></div> <script type="text/javascript"> (function() { var tn = document.createElement('script'); tn.type = 'text/javascript'; tn.async = true; tn.src = 'http://flashservice.example.com/embedcode/13042533/510/400/embed.js'; var s = document.getElementById('xv-embed-13042533'); s.parentNode.insertBefore(tn, s); })(); </script>
但在“查看”页面上,它会以下面的格式呈现为文本
<div id="xv-embed-13042533"></div> <script type="text/javascript"> (function() { var tn = document.createElement('script'); tn.type = 'text/javascript'; tn.async = true; tn.src = 'http://flashservice.example.com/embedcode/13042533/510/400/embed.js'; var s = document.getElementById('xv-embed-13042533'); s.parentNode.insertBefore(tn, s); })(); </script>
我正在使用以下语法
<div id="Div2" ng-bind-html="htmltext2"></div> <br/>
答案 0 :(得分:0)
您应该使用$sce.trustAsHtml
$scope.unsafeHtml = $sce.trustAsHtml('<script>...<\/script>');
与ng-bind-html
<div ng-bind-html="unsafeHtml"></div>
但是,上述操作无效,因为jqLite无法正确处理<script>
。您必须求助于such workaround或在Angular之前加载jQuery,因此jQuery将用作angular.element
而不是jqLite。
此处an example。