【发布时间】:2016-04-07 17:30:18
【问题描述】:
我使用 Angular 2.0.0-beta.0,我想直接创建和绑定一些简单的 HTML。是否有可能以及如何?
我尝试使用
{{myField}}
但 myField 中的文本会被转义。
对于 Angular 1.x,我发现了 ng-bind-html 的命中,但这似乎在 2.x 中不受支持
谢谢 弗兰克
【问题讨论】:
标签: angular
我使用 Angular 2.0.0-beta.0,我想直接创建和绑定一些简单的 HTML。是否有可能以及如何?
我尝试使用
{{myField}}
但 myField 中的文本会被转义。
对于 Angular 1.x,我发现了 ng-bind-html 的命中,但这似乎在 2.x 中不受支持
谢谢 弗兰克
【问题讨论】:
标签: angular
绑定到innerHTML属性
有两种实现方式:
<div [innerHTML]="myField"></div>
<div innerHTML="{{myField}}"></div>
将传递的 HTML 标记为受信任,以便 Angulars DOM sanitizer 不会剥离部分
<div [innerHTML]="myField | safeHtml"></div>
像这样的管道
@Pipe({name: 'safeHtml'})
export class Safe {
constructor(private sanitizer:DomSanitizer){}
transform(value: any, args?: any): any {
return this.sanitizer.bypassSecurityTrustHtml(value);
// return this.sanitizer.bypassSecurityTrustStyle(style);
// return this.sanitizer.bypassSecurityTrustXxx(style); - see docs
}
}
【讨论】:
[innerHTML]="..." 绑定添加任何特定于 Angular 的内容。完成这项工作的唯一方法是在运行时创建和编译组件。