【问题标题】:angular 2 [innerHTML] render inside html (not working on angular 2 ) [duplicate]angular 2 [innerHTML] 在 html 内渲染(不适用于 angular 2)[重复]
【发布时间】:2017-08-25 19:02:51
【问题描述】:

我正在使用 Angular 2,我尝试将我在变量 action.render 中的文本呈现为 html 代码:

<p *ngIf="action.isHtml">
      <div [innerHTML]="{{action.content}}"></div>                                               
</p>
<p *ngIf="!action.isHtml">
      {{action.content}}
</p>

innerHTML 在我的情况下不起作用。 Angular 2还有其他方法吗? (这是我得到的)

这是我的 action.content

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>
            </title>
            <style type="text/css">
                .cs2654AE3A{text-align:left;text-indent:0pt;margin:0pt 0pt 0pt 0pt}
                .csC8F6D76{color:#000000;background-color:transparent;font-family:Calibri;font-size:11pt;font-weight:normal;font-style:normal;}
            </style>
        </head>
        <body>
            <p class="cs2654AE3A"><span class="csC8F6D76">New claim declaration by HD team 00015371</span></p></body>
    </html>

【问题讨论】:

标签: html angular render innerhtml


【解决方案1】:

将您的代码更改为此并重试:

<p *ngIf="action.isHtml">
      <div [innerHTML]="action.content"></div>                                               
</p>
<p *ngIf="!action.isHtml">
      {{action.content}}
</p>

您应该使用innerHTML="{{action.content}}"[innerHTML]="action.content",但不能使用[innerHTML]="{{action.content}}"

【讨论】:

  • 不行我已经试过了。
  • 请您提供action.content。
  • 我发布了一个答案,因为它太长了
  • 工作正常,这解决了一个类似的错误
  • 还要小心,这段代码对脚本注入攻击很有价值,应该清理。简而言之:action.content可能包含一些恶意注入的脚本代码。
猜你喜欢
  • 2017-04-08
  • 2019-02-22
  • 2017-04-05
  • 2016-06-15
  • 1970-01-01
  • 2017-10-31
  • 2019-06-17
  • 2017-11-18
  • 2020-09-08
相关资源
最近更新 更多