【问题标题】:Angular Render html doesn't workAngular 渲染 html 不起作用
【发布时间】:2016-02-16 15:30:12
【问题描述】:

我有这个来自服务器端的字符串。

  <iframe scrolling="no" frameborder="0" allowtransparency="true" height="250" width="300" style="border:0;" src="http://cdn.castplatform.com/scripts/au1324.html?subid=6e6c4c9092a4fd311393cd770c71ff05"></iframe&gt

我想呈现呈现的 html。 使用 $sce.trustAsHtml 时,我进入视图:

<iframe scrolling="no" frameborder="0" allowtransparency="true" height="250" width="300" style="border:0;" src="http://cdn.castplatform.com/scripts/au1324.html?subid=6e6c4c9092a4fd311393cd770c71ff05"></iframe>

我希望得到呈现的 html(见图),而不仅仅是从转义字符中剥离的 html(如上):

我在这里缺少什么? 这是js代码:

$scope.field_value = $sce.trustAsHtml($sanitize(field_value)); 

以及查看代码:

<div ng-bind-html="field_value"></div>

谢谢。

【问题讨论】:

  • 如果您从服务器发送编码值,那么 trustAsHtml 没有帮助,请尝试从服务器发送未编码的 html
  • 这不是编码的,如果我用没有转义字符的字符串填充 field_value:

标签: javascript html angularjs


【解决方案1】:

您需要另一个解码步骤(复制自https://stackoverflow.com/a/31290632/3563439):

app.filter('trusted', ['$sce', function($sce) {
    var div = document.createElement('div');
    return function(text) {
        div.innerHTML = text;
        return $sce.trustAsHtml(div.textContent);
    };

小提琴:http://jsfiddle.net/masa671/8kphL7xe/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-31
    • 2021-05-04
    • 2019-06-04
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    相关资源
    最近更新 更多