我正在尝试创建一个Angular2自定义管道,用于输出原始HTML。我希望它能够将输入中的换行符简单地转换为HTML换行符。如何从angular2管道输出原始HTML?
以下是我的当前管道定义,但它会转义我不想要的HTML:
import {Pipe, PipeTransform} from '@angular/core';
/*
* Converts newlines into html breaks
*/
@Pipe({ name: 'newline' })
export class NewlinePipe implements PipeTransform {
transform(value: string, args: string[]): any {
return value.replace(/(?:\r\n|\r|\n)/g, '<br />');
}
}
编辑:由于这个问题似乎得到了很多关注和活动,所以我保留我的已接受答案,即使对于我特定的示例用例,css可能是更好的选择,而事实上这也是我所改变的。但我的实际问题是“如何从angular 2管道中输出原始html”,而不是“渲染换行的最佳方法”,这是已接受答案显示的内容。
请注意,在下面的评论中提到,如果您使用已接受答案中的方法,您需要确保不要呈现未经检查的用户输入,因为这可能会使您暴露于XSS漏洞。