用文本Angular 6替换HTML标签

时间:2018-06-30 08:02:42

标签: javascript angular angular-material angular6

我想使用HTML标签更改代码中的特定单词,并使用 themecolor 类更改文本的样式。

<h2 class="mb-30" [innerHTML]="main_title"></h2>

结果预览:

  

这是文本。

我想将<span class="themecolor">text</span>替换为text

我使用Angular 6构建了我的应用程序

3 个答案:

答案 0 :(得分:0)

由于Angular是基于组件的位置,因此通过选择器注入了html,因此不确定为什么需要这种功能。

无论如何, stackblitz

bindind在您希望的这一行中发生:

<h2 class="mb-30" [innerHTML]="main_title"></h2>

我要做的就是在 app.component.ts

中使用您选择的自定义HTML实例化 main_title

此外,请注意,我使用了 ngDoCheck 来检测文本输入的变化。

这将允许您在文本框内输入 HTML (实际上称为textarea)。

答案 1 :(得分:0)

@angular/core中使用渲染器2

ts文件

import { Component, OnInit, Input, ViewChild, ElementRef, Renderer2 } from '@angular/core';

@Component({
  selector: 'app-custom-html',
  templateUrl: './app-custom-html.component.html',
  styleUrls: ['./app-custom-html.component.scss']
})
export class CustomHtmlComponent implements OnInit
{

  @Input() public text: string;
  @ViewChild('container') public container: ElementRef;
  constructor(private renderer: Renderer2) { }

  ngOnInit()
  {
    const span = this.renderer.createElement('span');
    this.renderer.addClass(span, 'my-class');
    const text = this.renderer.createText(v.text);
    this.renderer.appendChild(span, text);

    this.renderer.appendChild(this.container.nativeElement, div);
  }
}

HTML文件

<div #container></div>

答案 2 :(得分:-1)

property: string = "Text";

Use [innerText]="property"
<p [innerText]="property/variable"></p>

这会将文本插入html