我正在尝试将html添加到div中,如下所示:
$scope.thehtml = $sce.trustAsHtml("<b>hello</b>")
<div ng-bind-html="thehtml">
</div>
我在控制台中看到以下错误:
TypeError: undefined is not a function
at htmlParser (js/angular/angular-sanitize.js:205:17)
at $sanitize (js/angular/angular-sanitize.js:119:5)
at Object.ngBindHtmlWatchAction [as fn] (js/angular/angular-sanitize.js:420:15)
at h.$get.h.$digest (js/angular/angular.min-125.js:98:396)
angular-sanitize.js:205:17就是这样:
if ( html.indexOf("<!--") === 0 ) {
index = html.indexOf("-->");
显然html不被视为字符串,因此indexOf上的错误?
我已经加入了angular-sanitize.js,并添加了模块&#39; ngSanitize&#39;到应用程序。
答案 0 :(得分:2)
请参阅此plunk。 从我可以看到你的实现看起来很好!我的插件正在工作,我没有使用相同的代码获得异常。 我没有必要添加ngSanitize作为模块的依赖,我刚刚将$ sce注入我的控制器。
我使用的库的版本如下:
https://code.angularjs.org/1.2.28/angular.js
https://code.angularjs.org/1.2.0-rc.3/angular-sanitize.js
请尝试用这些版本替换脚本引用,以查看是否存在错误的库。
让我知道你是怎么过的!祝你好运:)
答案 1 :(得分:0)
首先包含angular
,然后包含angular-sanitize
:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/x.y.z/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/x.y.z/angular-sanitize.js"></script>