html - 在 Angular 模板绑定(bind)中剥离 html

标签 html angular angular2-template

我有一个显示有时包含 HTML 的数据的列表

  <li *ngFor="let result of results">
    <span [innerHTML]="result.question.title">
    </span>
  </li>

使用innerHTML的问题是 HTML 被解析和呈现,所以像 <p> 这样的东西标签会增加边距并破坏列表的对齐方式。

我想去掉所有的 html 标签,只输出纯文本。

这样的方法:

  <li *ngFor="let result of results">
    <span>
        {{result.question.title}}
    </span>
  </li>

不会剥离 HTML,它只是将 HTML 输出为纯文本。

如何去除 HTML 并以“Angular”方式保留纯文本?

最佳答案

我想没有直接的方法可以从字符串中去除 HTML 标签,你可以使用 Pipe ,写一个这样的“管道”:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'striphtml'
})

export class StripHtmlPipe implements PipeTransform {
    transform(value: string): any {
        return value.replace(/<.*?>/g, ''); // replace tags
    }
}

然后将“StripHtmlPipe”添加到您的模块“声明”中,完成这些步骤后,您可以在 HTML 中使用此管道:

<li *ngFor="let result of results">
    <span>
        {{result.question.title | striphtml}}
    </span>
  </li>

请注意上面的代码没有经过全面测试。

关于html - 在 Angular 模板绑定(bind)中剥离 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46271634/

相关文章:

angular - angular2登录页面的不同布局

html - 选择框默认选定值未显示在 Angular 2 的选择框中

html - margin auto 是什么意思?

html - Bootstrap 选择不起作用

html - 需要删除大的空白区域

javascript - 在Angular 6组件html中全局访问js对象

css - ngClass 在 li background-color angular 2 之间切换

php - 如何更改xdebug输出的颜色?

javascript - ngx-translate 提供后备语言

javascript - 使用外部 javascript lib footable 时丢失 Angular 2 中的点击事件