这有效:
<div [innerHTML]="rssItem.title"></div>
这不是:
<input type="text" formControlName="title" [(ngModel)]="rssItem.title" name="title" #title class="form-control" [innerHTML]="rssItem.title">
为什么呢?
我尝试使用sanitize html管道,如here所述,但它不适用于文本输入。
在Windows上使用Angular2版本2.4.5。
答案 0 :(得分:2)
这是解码HTML字符(Reference)
的简单方法constructor() {
let str = "飞思卡尔最新MCU";
this.rssItem.title = this.decodeHtml(str);
}
private decodeHtml(html: string) {
var txt = document.createElement("textarea");
txt.innerHTML = html;
return txt.value;
}
此外,使用Sanitizer
来获取安全的html字符串。 (Reference)
答案 1 :(得分:1)
找到基于this answer
的解决方案创建了一个私有函数:
decodeEntities(encodedString) {
var textArea = document.createElement('textarea');
textArea.innerHTML = encodedString;
return textArea.value;
}
用它来解码字符串。
尝试使用相同的代码创建管道,但无法在输入文本标记中使用它。如果有人知道如何做到这一点,请发布。