我有一个列表,显示有时可以包含HTML的数据
使用innerHTML的问题是HTML会被解析和呈现,所以像
标记这样的东西会增加页边距并破坏列表的对齐。
我想去掉所有HTML标记,只输出纯文本。
这样的方法:
{{result.question.title}}
号
不删除HTML,它只是将HTML输出为纯文本。
我如何才能去掉HTML并以"角度"方式保留纯文本?
"剥离HTML"不会导致"纯文本"吗?你到底在期待什么?也许您应该显示一个样本以及您期望的结果。但通常,当你删除所有HTML标记时,剩下的就是"纯文本"。如果你的意思是别的,那就需要更好的解释。最好用建议的例子来说明。
@尼尔伦,这正是我的意思。我在等纯文本。我不是别的意思
因为我(和我认为其他人)的印象是标记将被清理和删除,然后再次正如建议的那样,"给我们展示一个可复制的样本",而不是仅仅谈论它。
你的印象是正确的。
我想没有直接的方法从字符串中去掉HTML标记,你可以使用pipe,写一个"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"添加到模块"declarations"中,完成这些步骤后,您可以在HTML中使用此管道:
{{result.question.title | striphtml}}
号
请注意,上述代码没有经过全面测试。
如果这不起作用,请尝试。