【发布时间】:2017-05-20 14:52:17
【问题描述】:
我从我创建的对象中注入了 HTML,而不是使用管道,我绕过了角度安全性来显示输入字段、文本区域等。
我正在注入一个输入字段、一些文本和一个您可以编辑的<p contenteditable="true"> change me </p>。
3) 当用户更新内部时如何跟踪变化并将其推回对象?
如果用户更改了[innerHTML]="item.htmldata" 中的 HTML,有没有办法跟踪它?
obj: Array<any> = [
{ htmldata: '<div> <strong> There should be a input field below </strong> <input type="text" value="search" /></div>' },
{ htmldata: '<div> <strong> me to, how are you </strong></div>'}
]
我正在运行 ngFor 循环并通过 angular [innerHTML]="item.htmldata" 绑定数据
<div *ngFor="let item of obj" >
{{item.htmldata | json }}
<div [innerHTML]="item.htmldata" | safeHtml></div>
<br />
<hr>
</div>
**SafeHTML pipe**
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';
DomSanitizer
@Pipe({name: 'safeHtml'})
export class Safe {
constructor(private sanitizer: DomSanitizer){}
transform(style) {
return this.sanitizer.bypassSecurityTrustHtml(style);
//return this.sanitizer.bypassSecurityTrustStyle(style);
// return this.sanitizer.bypassSecurityTrustXxx(style); - see docs
}
}
【问题讨论】:
标签: angularjs object render inject