【问题标题】:Angular 4 Output Complete HTML Syntax code in HTML as raw textAngular 4在HTML中输出完整的HTML语法代码作为原始文本
【发布时间】:2018-04-05 06:42:29
【问题描述】:

我已经搜索了可能的答案,但没有一个有效。所有的 innerHTML 和 PRE 标记示例都适用于代码或文本,但不适用于 HTML。这正是我想要放入变量的内容:

<div [ngStyle]="{'display':'flex', 'flex-direction':'column', 'width': '100vw', 'height': '100vh'}">
  <top-header>
    <a class="topHeaderItem" (click)="goToHome()">Home</a>
    <a class="topHeaderItem" (click)="gotoTOC()">Contents</a>
  </top-header>

这正是我想要在屏幕上显示的内容 - 每个字符,因为它是一个教程示例。

这是我的痛苦。我的 HTML:

1
<div [innerHTML]="code1">
</div>
<hr>
2
<div>
<pre>
  <code [innerHTML]="code1"></code>
</pre>
</div>
<hr>
3
<div [innerHTML]=code1>
</div>

我的组件.ts:

import {Component} from '@angular/core';

@Component({
  selector: 'cs-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})
export class HomeComponent {
  code1 = `
<div [ngStyle]="{'display':'flex', 'flex-direction':'column', 'width': '100vw', 'height': '100vh'}">
  <top-header>
    <a class="topHeaderItem" (click)="goToHome()">Home</a>
    <a class="topHeaderItem" (click)="gotoTOC()">Contents</a>
  </top-header>
  `

   constructor() {
  }
}

现在我可怜的输出:

【问题讨论】:

  • {{code1}}
    ?
  • 嗨 Vega,这非常接近。就像我要求的那样,所有的 HTML 都是原始文本。不幸的是,这一切都排在一条长线上。为每一行制作 div 并为缩进制作一些样式并不会杀死我。想提出这个作为答案吗?

标签: html css angular innerhtml pre


【解决方案1】:

[innerHTML] 绑定将解释HTML。如果要显示 HTML 代码,可以改用 [innerText],或者像 @Vega 指出的那样简单地使用字符串插值。这将正确地转义 HTML。

<div>{{ code1 }}</div>

// or

<div [innerText]="code1"></div>

绑定到[innerText] 将保留换行符。

【讨论】:

  • 我之前尝试过第二个:在上面显示的输出中查看我的#1。不过,我非常想保留换行符。还有什么想法吗?
  • innerText 将保留这些(将它们转换为&lt;br&gt;)。但是您也可以使用第一种方法并在 HTML/CSS 中处理这个问题,就像 @Gaby 建议的那样(使用 &lt;code&gt;&lt;pre&gt; 标记或 &lt;div&gt; 上的 white-space: pre CSS 属性。
  • 亲爱的上帝!为什么这个简单的答案如此难以理解!天哪!
【解决方案2】:

innerHTML 是如果您想实际显示作为文档一部分插入到 DOM 中的 HTML。

您需要正常的{{ code1 }} 语法,该语法将对变量进行编码以供显示。

添加 codepre 将按照您想要的方式设置样式(或者您可以通过 CSS 将容器的 css 设置为 white-space:pre

<div><code><pre>{{code1}}</pre></code></div>

https://plnkr.co/edit/cVnQZeWnqJCYTBmndmB6?p=preview 的示例

【讨论】:

  • 在我尝试过的所有组合中,我没有尝试过这个 LOL...代码中的 pre 然后 {{ }} ...太棒了。我必须在我的个人维基上写下来。谢谢。
  • 我有&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;My First JavaScript Code&lt;/title&gt; &lt;/head&gt; &lt;script type="text/javascript"&gt; var myVar = 'global'; function checkscope() { var myVar = 'local'; console.log(myVar); } &lt;/script&gt; &lt;body onload="checkscope();"&gt; &lt;h2&gt;JavaScript Comment&lt;/h2&gt; &lt;/body&gt; &lt;/html&gt; 这不适用于&lt;div&gt;&lt;code&gt;&lt;pre&gt;{{code1}}&lt;/pre&gt;&lt;/code&gt;&lt;/div&gt;
猜你喜欢
  • 2021-09-19
  • 1970-01-01
  • 2019-11-27
  • 2021-04-28
  • 2015-04-16
  • 2018-07-19
  • 2015-07-15
  • 2016-06-30
  • 1970-01-01
相关资源
最近更新 更多