我试图在从一些json数据中提取的字符串example: ("<div>test</div><p></p>......")中呈现一些html标记,但是下面我常用的$sce.trustAsHtml()过滤器由于某种原因不起作用,只是将字符串呈现为纯文本:
myHtmlFilter.js:
angular
.module('myApp.htmlFilter', [])
.filter('html', ['$sce', function ($sce) {
return function (text) {
return $sce.trustAsHtml(text);
};
}]);Index.html:
<div ng-bind-html='View2.loadedJson.htmlTextString | html'></div>如果我像下面这样直接将一些html硬编码到过滤器中,它看起来确实有效:
<div ng-bind-html='"<strong>Test</strong>" | html'></div>有没有人知道我哪里错了?
发布于 2015-08-03 17:06:36
您需要在您的应用程序中包含ngSanitize。从文档(https://docs.angularjs.org/api/ng/directive/ngBindHtml):
要利用此功能,请确保$sanitize可用,例如,通过将ngSanitize包含在模块的依赖项中(而不是在核心Angular中)。为了在模块的依赖项中使用ngSanitize,您需要在应用程序中包含“angular-Saniize.js”。
您需要更改脚本中的第一行,并在html中包含一个指向angular sanitize js文件的链接:
angular.module('myApp.htmlFilter', ['ngSanitize'])编辑:http://plnkr.co/edit/LNblnXUIakoSuWHkIAeZ?p=preview
https://stackoverflow.com/questions/31782935
复制相似问题