删除ng-bind-html-unsafe后,如何注入HTML?

HTML

小小

2020-04-02

我正在尝试使用$sanitizeprovider和ng-bind-htm-unsafe指令来允许我的控制器将HTML注入DIV。

但是,我无法使其正常工作。

<div ng-bind-html-unsafe="{{preview_data.preview.embed.html}}"></div>

我发现这是因为它已从AngularJS中删除(谢谢)。

但是没有ng-bind-html-unsafe,我得到这个错误:

http://errors.angularjs.org/undefined/$sce/unsafe

第3882篇《删除ng-bind-html-unsafe后,如何注入HTML?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
ANear 2020.04.02

我有类似的问题。仍然无法从托管在github上的markdown文件中获取内容。

在app.js中的$ sceDelegateProvider中设置了白名单(添加了github域)后,它的工作就像一个魅力。

描述:如果您从其他网址加载内容,请使用白名单而不是包装为受信任的内容。

Docs: $ sceDelegateProviderngInclude(用于获取,编译和包括外部HTML片段)

阳光Itachi村村 2020.04.02

您无需在ng-bind-html-unsafe中使用{{}}:

<div ng-bind-html-unsafe="preview_data.preview.embed.html"></div>

这是一个示例:http : //plnkr.co/edit/R7JmGIo4xcJoBc1v4iki?p=preview

{{}}运算符本质上只是ng-bind的简写,因此您尝试的操作等于绑定内的绑定,这是行不通的。

小卤蛋 2020.04.02

对我来说,最简单,最灵活的解决方案是:

<div ng-bind-html="to_trusted(preview_data.preview.embed.html)"></div>

并将功能添加到您的控制器:

$scope.to_trusted = function(html_code) {
    return $sce.trustAsHtml(html_code);
}

不要忘记添加$sce到控制器的初始化中。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android