以 HTML 代码作为输入的 Angular 组件

2024-03-15

我正在创建一个角度组件,它显示突出显示的 HTML 代码及其执行结果。显示的 HTML 代码位于 pre html 元素内,至于结果的预览,它是硬编码的:

<pre class="prettyprint lang-html">

&lt;button type="button" class="btn btn-danger">Danger&lt;/button> <br> &lt;p> Hello World! &lt;/p>

</pre>
<button type="button" class="btn btn-danger">Danger</button>
<p> Hello Wolrd </p>

使用该组件的结果如下下列的 https://i.stack.imgur.com/sRE85.png

现在我想做的就是将此 HTML 代码作为输入传递给该组件。我尝试使用以下字符串将代码作为字符串传递:

&lt;button type=\"button\" class=\"btn btn-danger\">Danger&lt;/button> <br> &lt;p> Hello World! &lt;/p>

显示为字符串且未执行的输入显示为 HTML 代码:image https://i.stack.imgur.com/3QGuA.png

我如何使用此输入字符串 1. 将其显示为 html 代码并 2. 执行此代码以预览结果?否则,我应该使用什么类型作为输入?

感谢您的帮助。


解决方案是创建一个绕过安全信任 html 的自定义管道:

import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';

@Pipe({name: 'sanitizeHtml'})
export class SanitizeHtmlPipe implements PipeTransform {
  constructor(private _sanitizer:DomSanitizer) {
  }
  transform(v:string):SafeHtml {
    return this._sanitizer.bypassSecurityTrustHtml(v);
  }
}

在模块中声明它并在要显示 HTML 字符串的位置使用它:

<div [innerHTML]=" yourHTMLstring | sanitizeHtml "> </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以 HTML 代码作为输入的 Angular 组件 的相关文章

  • 类型“never”上不存在属性“click”。 TS2339

    根据有关 TypeScript 此类错误的其他类似问题 关于问题 44147937 https stackoverflow com questions 44147937 property does not exist on type nev
  • CSS Font-Face url 不起作用?

    我在使用 font face 选择器时遇到了一些问题 我有以下问题 font face font family MuseoSans 700 src url http mysite co uk clients reload Images st
  • 在 TypeScript 中将 Chai 自定义插件声明为 NodeJS 全局变量

    这是我之前的问题 https stackoverflow com questions 61676032 declare nodejs global variables in before hook in webdriverio using
  • 如何在 Safari 上打开本地 html 文件?

    我想打开本地 html 文件Safari集成到我的Swift 3应用 我知道如何使用网址来做到这一点 这是我用来执行此操作的代码 let encodedString url addingPercentEncoding withAllowed
  • Python。短语表示,如何改变?

    我不知道这个短语中存在的编码是什么 我也想知道这个问题的答案 主要是 我想改变我的措辞 例如 你好世界 变成你好 20世界 0A 老天啊 变成ol C3 A1 20mundo 0A 0A 我想要一个 python 解决方案 如果我有 gt
  • 使用无图像按钮有哪些优点?

    讨论关于这个答案 https stackoverflow com questions 520640 how can i use googles new imageless button how could i reverse enginee
  • 包 [email protected] 不满足其同级包的对等依赖性要求?

    我正在尝试在我的 Angular 2 应用程序中安装 ngrx store 模块 我正在使用 npm install 并收到以下错误 npm ERR peerinvalid The package email protected cdn c
  • 下拉 24 小时选项值和 12 小时显示

    我需要创建一个时间数组 以便在 HTML 下拉列表中使用 数组键应采用 24 小时格式 值应采用 12 小时制 包含 am 和 pm 在数据库中我想存储 24 小时格式 有没有一种快速的方法来创建数组而不是每小时键入 example 00
  • IE10中的图像插值

    这是我的用例 我有一个采用响应式设计的网页 该页面垂直分成两半 我想在右侧显示图像 呈现为 PNG 或 JPG 的 PDF 页面 调整窗口大小后 图像的大小应立即更改 我以为我已经解决了这个问题 我将服务器上的图像渲染得足够大 以适应最大可
  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • IE8 中空 div 层的 z-index 问题

    我在 IE8 中遇到 z index 问题 其他尚未测试 以下 JS 创建一些 html css document write img src border 0 document write div style background col
  • 如何在 Angular 2 应用程序中使 DateAdapter 单例?

    我正在开发一个带有延迟加载模块的 Angular 7 应用程序 我也使用有角度的材料组件 我想在日期选择器组件中本地化并支持多个区域设置 当应用程序语言发生变化时 我想在整个应用程序中全局更改它 可以通过 DateAdapter setLo
  • 以 HTML 格式发送电子邮件

    我想发送 HTML 格式的电子邮件 如下图所示 我怎样才能做到这一点 请帮我 提前致谢 String body new String table tr td br header td tr br br Get b Best Score b
  • Gmail 和 Google Chrome 12+ 中的“从剪贴板粘贴图像”功能如何工作?

    我注意到一个来自 Google 的博文 http gmailblog blogspot com 2011 06 pasting images into messages just got html其中提到 如果您使用的是最新版本的 Chro
  • Rails 中的 PDF 导出

    我需要将包含一些图表的 HTML 页面导出为 PDF 有哪些好的 gem 可以做到这一点 PDFKit http railscasts com episodes 220 pdfkit http railscasts com episodes
  • CSS 动画自定义属性/变量

    一段时间以来我一直在努力让它发挥作用 关键是内部 div 将具有某种形状 并且可能会不止一个 这就是为什么我使用nth child选择器 这个内部 div 应该显示然后再次隐藏一段时间 问题是 我想在一个动画中为所有 后来的 多个内部 di
  • Angular 停止 Enter 键提交

    I am trying to stop the Enter from submitting my button and rather make it point to another function I tried trapping th
  • 响应式2列2行布局

    我一直在试图弄清楚如何创建这个布局 我有一个 2 列布局 左列有 1 行 右侧有 2 行 我试图让它流畅地调整 我遇到的问题是 我希望右侧顶部图像的顶部与左侧图像的顶部对齐 而底部图像的底部与左侧图像的底部保持对齐 我应该使用桌子吗 这是我
  • iframe 主体删除空间

    我的 iframe 风格为style width 100 几乎覆盖了页面宽度 但它在左侧和右侧留下了一个小边距 所以我添加了body margin 0px 删除空间 它有效 但问题是删除边距影响其他事物 例如段落 p inside 有没有办
  • Angular 2:使用正则表达式进行数字验证

    我正在尝试验证 IE 11 中的数字字段

随机推荐

  • Puppeteer 等待所有图像加载然后截图

    我在用傀儡师 https github com GoogleChrome puppeteer尝试在所有图像加载后截取网站的屏幕截图 但无法使其正常工作 这是到目前为止我正在使用的代码https www digg com https www
  • 使用position_dodge绘制geom_segment

    我有一个数据集 其中包含个人随时间的工作地点信息 更具体地说 我有关于个人在特定工作场所工作的时间间隔的信息 library tidyverse library lubridate individual A a id lt c rep A
  • 为什么我的 venv 使用的 pip 版本与我安装的不同

    我正在设置虚拟环境 我收到有关过时 pip 19 2 的警告 因此我在全球范围内更新了我的 macos 系统上的 pip sudo H python3 m pip install upgrade pip 它似乎有效 但是当我制作新的 ven
  • 如何使用 CSS/Javascript 根据窗口高度使 div 在两个 div 之间自动调整其高度?

    我有一个 div 位于正文顶部 另一个 div 位于正文底部 现在我想在这两个 div 之间放置一个 div 并使其高度占据这两个 div 之间的最大可用空间 这两个 div 之间的垂直空间不是固定的 这意味着当用户减小 增加窗口的高度时
  • Android Studio 观察表达式持久性

    每次调试后 Android Studio 都会删除我的所有监视表达式 我怎样才能强制它保留我的手表并将它们保存在项目中 据我所知 没有办法保存手表 但是 您可以使用 自动变量模式 左下角调试器选项卡 gt gt 设置按钮 这将清理调试器变量
  • 在 keyDown 事件中获取修饰符Flags,而无需同时按下非修饰键!

    我在 NSDocument 应用程序中对 NSWindow 进行了子类化 以便接收 keyDown 事件 我在我的子类中使用了以下代码 void keyDown NSEvent theEvent NSLog keyDown if theEv
  • 如何在 ILNumerics 中配置刻度标签位置?

    I draw some lines with ILLinePlot 然后我旋转立方体 目的是更改从顶部开始的 Y 刻度标签的位置 Rotation Matrix4 Rotation new Vector3 1 0 0 ILMath pif
  • 显示构建日期

    我目前有一个应用程序在其标题窗口中显示内部版本号 这很好 但对大多数用户来说没有任何意义 他们想知道他们是否拥有最新版本 他们倾向于将其称为 上周四的 而不是版本 1 0 8 4321 计划是将构建日期放在那里 例如 应用程序构建于 21
  • 当我从另一个方法调用方法时,React-native Bridge 为零

    但我注意到 每当我从另一个方法调用它时 我的桥变量都是零 我相信这是因为只有在从 javascript 调用桥接方法时才会设置桥接 我已经尝试了从创建委托到创建 SingleTon 类的所有方法 以上都不起作用 我不明白为什么它只能在我从
  • Streamfield 中的 Wagtail SnippetChooserBlock

    我在从片段中获取值时遇到一些问题 我已使用片段选择器块将其包含到流场中 生物片段 register snippet class BioSnippet models Model name models CharField max length
  • 无法引用函数,因为它是已删除的函数

    你好 我正在从一本书上学习 C 正在做下面的练习题 编写一个接受并返回 istream 的函数 该函数应该读取流 直到到达文件末尾 该函数应将其读取的内容打印到标准输出 在返回流之前重置流使其有效 include stdafx h incl
  • OBD2 - ELM327蓝牙模拟器[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发 Android 应用程序 用于通过蓝牙连接到汽车单元的 ELM327 有没有模拟器可以通过
  • 使用 Gradle 添加到 WAR 包中的错误文件

    我正在使用 Gradle 1 5 并且我正在尝试适应战争插件 http www gradle org docs current userguide war plugin html到 Eclipse 动态项目 当 WAR 被 eclipse
  • 禁用该复选框时不应进行更新

    我有两页 一页是管理员 另一页是教师 管理员将科目分配给教师 教师只想选择所需的时间 我的问题是我不想对禁用的复选框执行更新查询 我已经尝试了下面的代码 但它也在更新禁用复选框 using SqlConnection con2 new Sq
  • 当 A-lx 是奇异且无解时的特征向量

    R 如何找到以下矩阵的特征向量 特征值是 2 2 所以特征向量需要求解solve matrix c 0 1 0 0 2 2 这是无解的奇异矩阵 gt eigen matrix c 2 1 0 2 2 2 values 1 2 2 vecto
  • 了解elasticsearch jvm堆的使用情况

    Folks 我正在尝试减少 Elasticsearch 部署 单节点集群 中的内存使用量 我可以看到正在使用 3GB JVM 堆空间 为了优化 我首先需要了解瓶颈 我对 JVM 使用如何分配的了解有限 字段数据看起来消耗 1 5GB 过滤器
  • 如何使用 PhpStorm 和 Xdebug 调试 AJAX (POST)?

    我已将 PhpStorm 配置为调试 HTTP GET 但仅当我直接加载页面时 当我想要调试 AJAX 时 我获取 JS 请求的 URL 并创建一个 PhpStorm 配置来调试它 不是特别优雅 是吗 当然 我不能对 POST 请求这样做
  • 什么是投影?

    从数据库理论和 NHibernate 的角度来看 使用 SetProjection 时什么是投影 投影是关系代数的基本运算之一 它采用一个关系和该关系的属性列表 可能为空 作为输入 它输出仅包含指定属性列表的关系删除重复的元组 换句话说 输
  • 多个事实的聚合解决方案

    尝试创建一个谓词 timePeriod 2 计算特定事实的两个日期之间的时间段 我已经设法自己做到这一点 但当 其他答案 存在于同一列表中时会遇到问题 即更容易用示例解释 我有以下知识基础事实 popStar Jackson 1987 19
  • 以 HTML 代码作为输入的 Angular 组件

    我正在创建一个角度组件 它显示突出显示的 HTML 代码及其执行结果 显示的 HTML 代码位于 pre html 元素内 至于结果的预览 它是硬编码的 pre class prettyprint lang html lt button t