当前位置: 首页 > 知识库问答 >
问题:

innerHTML不适用于某些标记,如按钮或自定义标记[duplicate]

太叔富
2023-03-14

插值问题当我通过角度插值指定一些html标记(如按钮)或自定义标记时,它不会显示

在组件中。html文件

在组件中。ts文件

html=”

不在有棱角的地方工作https://stackblitz.com/edit/angular-j5gsb4?embed=1

它在纯html/js中工作https://plnkr.co/edit/3PWexJjKbOEe50egKjqJ?p=preview


共有2个答案

陈嘉荣
2023-03-14

默认情况下,Angular正在清理潜在的不安全内容。您可以告诉Angular信任您的内容

import { DomSanitizer } from '@angular/platform-browser';

export class AppComponent  {
  constructor(private sanitizer:DomSanitizer){
    this.html = sanitizer.bypassSecurityTrustHtml("<h1>Header</h1><button>Button</button>");
  }
  html;
}

StackBlitz示例

另见https://stackoverflow.com/a/41089093/217408

孟增
2023-03-14

innerHTML不是作为HTML元素属性公开的属性。

<div [innerHTML]="html"></div>

所以这行不通。

您可以使用@ViewChild访问DOM元素

app.component.html

<div #someVar></div>

应用程序。组成部分ts

import {ElementRef} from '@angular/core';
@ViewChild('someVar') el:ElementRef;

constructor() {}

ngAfterViewInit() {
      this.el.nativeElement.innerHTML = "some html";
}
 类似资料:
  • 我有一个注释用于像这样定义的方法或字段: 我想阻止用户在记录上使用它,因为在该上下文中使用此注释是没有意义的。这样做似乎不应该编译,因为我没有将指定为有效的。 不过,以下编译正常: 但是这个带有紧凑构造函数的表单无法使用“java:注解类型不适用于这种声明”进行编译——这实际上是我所期望的。

  • 我正在使用querySelector获得一个div元素,并且能够更改按钮名称,但是我还想插入一个span标记。好心的帮助。 我想把“标准”包装在span标记中。请帮帮忙。

  • 问题内容: 我正在尝试创建一种类似于英语的小型语言来指定任务。基本思想是将陈述分为动词和名词短语,这些动词应适用于它们。我正在使用nltk,但未获得我希望的结果,例如: 在每种情况下,它都未能意识到第一个单词(选择,移动和复制)被用作动词。我知道我可以创建自定义标签和语法来解决此问题,但是与此同时,当很多此类东西不在我的支持范围内时,我犹豫要重新发明轮子。我特别希望可以同时处理非英语语言的解决方案

  • 我正在使用React视图上的Highcharts。出于可访问性和搜索引擎优化的原因,我想定制标记,但我在文档中找不出如何实现。Highcharts会自动插入一个标记,如下所示: <代码> 有没有办法改变这一点,或者这是硬编码的?

  • 定义和使用自定义标记可以吗?(这不会与将来的html标记冲突)-通过更改outerHTML替换/呈现这些标记?? 我在下面创建了一个演示,看起来效果不错 问题的最新情况: 让我进一步解释一下。请假设浏览器上启用了JavaScript-也就是说,应用程序不应该在没有javascript的情况下运行。 我见过使用自定义属性在指定标记中定义自定义行为的库。例如,角度。js大量使用自定义属性。(它还有关于

  • 我们可以自定义标记图标谷歌地图吗?我不想只是简单地更改图标位图(我知道怎么做),我想更改图标的方式就像我有一个xml布局(有一个imageview和一个textview),我想膨胀这个xml(像自定义信息窗口)。但我想让它成为一个标记图标,这样我就可以通过编码来设置图像和文本。注意,我不想要一个信息窗口,我希望它是一个标记