ng-bind-html - 使用angular-sanitize - 在控制台中抛出错误

时间:2014-10-15 17:48:44

标签: javascript angularjs angular-ui

我正在尝试将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;到应用程序。

2 个答案:

答案 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>