我是AngularJS的新手。所以这个问题可能非常基本,但我没有从其他帖子得到明确答案,所以我试着提出一个新问题。
我想知道为什么angulars js ng-bind-html 从我想要粘贴在我网站上的内容中删除所有脚本标签。
我只是尝试使用AngularJS文档网站中的这个代码示例,它显示了一个带有java脚本标记的简单bind-html示例。
(function(angular) {
'use strict';
angular.module('bindHtml', ['ngSanitize'])
.controller('Controller', ['$scope', function($scope) {
$scope.myHTML =
'I am an <code>HTML</code>string with ' +
'<a href="#">links!</a> and other <em>stuff</em>'+
'<script type="javascript">' +
'alert(1);'+
'</script>';
}]);
})(window.angular);
此代码段显示了html模板:
<body ng-app="bindHtml">
<div ng-controller="Controller">
<p ng-bind-html="myHTML"></p>
</div>
</body>
但Chrome Inspector显示AngularJS显然删除了所有java脚本而没有出现警告消息。有办法绕过这个删除或者我必须重写所有旧式jquery和什么javascript进入AngularJS? Screenshot from code inspector of Chrome
谢谢
答案 0 :(得分:1)
您需要将$ sce服务注入您的控制器或指令等,并使用这样的$ sce服务: -
BluetoothConnectionStatus.Disconnected
并将其绑定在HTML页面中,例如
$scope.myHTML= $sce.trustAsHtml("I am an <code>HTML</code>string with ' +
'<a href="#">links!</a> and other <em>stuff</em>'+
'<script type="javascript">' +
'alert(1);'+
'</script>");