在Angular 2绑定中显示HTML特殊字符?

Display HTML special characters in Angular 2 bindings?

我有一个像这样的普通绑定{{foo}},它在HTML中将foo的值显示为文本。来自服务器的文本是"R&D"。我需要这个显示为"R&D"。有什么帮助吗?


{{}}用于字符串绑定。

使用属性绑定到innerHTML来正确显示这些字符。

1
 

有关详细信息,请参阅https://stackoverflow.com/a/41089093/217408。


为了更有趣和更灵活,您可以创建一个管道来解析HTML实体:

1
2
3
4
5
6
7
8
9
10
@Pipe({name:"decodeHtmlString"})
export class DecodeHtmlString implements PipeTransform {
    transform(value: string) {
        const tempElement = document.createElement("div")
        tempElement.innerHTML = value
        return tempElement.innerText
    }
}

{{foo | decodeHtmlString}}


如果不想使用[innerHTML],可以使用Unicode字符串字符(如果项目中使用的是Unicode字符串)。

对于"&;"符号,它是U+0026:

埃多克斯1〔8〕


innerHTML工作时,它将中断行,并且div将显示在新行中(如果您喜欢使用DIV)。用outerHTML代替。它将在您使用它的同一个地方添加EDOCX1的值(5)。

1
 

使用innerHTML时,SPAN是更好的选择。


您可以这样使用innerhtml:

1
 <span [innerHTML]="foo"></span>

它会正确解码


您也可以尝试这样的绑定方式u0026"


你可以试试这个。

1
 

把你的模型绑起来

1