How to bind raw html in Angular2
我使用angular 2.0.0-beta.0,我想直接创建和绑定一些简单的HTML。是可能的,怎么可能?
我试着用
但myfield中的文本将被转义。
对于angular 1.x,我找到了ng bind html的点击量,但在2.x中似乎不支持这个。
谢谢弗兰克
绑定到innerHTML属性
有两种方法可以实现:
将传递的HTML标记为可信,这样Angulars DOM Sanitizer就不会删除
号
像管子一样
1 2 3 4 5 6 7 8 9 10
| @Pipe({name: 'safeHtml'})
export class Safe {
constructor(private sanitizer:DomSanitizer){}
transform(value: any, args?: any): any {
return this.sanitizer.bypassSecurityTrustHtml(html);
// return this.sanitizer.bypassSecurityTrustStyle(style);
// return this.sanitizer.bypassSecurityTrustXxx(style); - see docs
}
} |
另请参见rc.1,有些样式不能使用绑定语法添加。
- 我用同样的方法阻止它剥离点击事件,但是现在点击事件不会触发,我看到了其他关于动态事件点击的答案,但是如何使点击在上述简单情况下工作
- 使用[innerHTML]="..."绑定不能添加任何角度特定的内容。实现这一点的唯一方法是在运行时创建和编译组件。
- 你有没有这个小例子,那个动态标签点击例子是一个很好的方法,我只想实现动态锚链接。
- stackoverflow.com/questions/38888008/…,stackoverflow.com/questions/34784778/…
- 您认为在HTML中是否可以像下面那样使用angular:in ts file:htmlstring='
- 当然,但如果你还想加上(click)="clickHandler()",那你就走运了。
- @G&252;ntez&246;chbauer 不显示为按钮。有什么原因吗?我正在从.cshtml获取代码。
- @K11K2你在我的答案末尾检查了链接吗?
- @G&252;ntez&246;chbauer函数调用如何实现它,比如(click)="clickHandler()"任何工作?
- 劫掠者使用了一个旧的角度版本,不需要也没有圣地亚哥。
- @G&252;ntez&246;chbauer yea编辑了我的评论。
- 请访问stackoverflow.com/questions/45842153/…查看我的评论。没有办法用innerHTML来实现这一点。您可以使用[innerHTML]="myHtml | safeHtml"添加HTML,然后查询元素,并使用addEventHandler添加单击处理程序(就像在普通JS中一样)。
- stackoverflow.com/questions/35080387/…角度角度角度的活动方式聆听"美妙的东西"
- 我不确定这是否是规范的更新,但在Angular 5+中,它现在是@Angular/Platform浏览器中的domSanitizer,而不是Sanitizer,后者是@Angular/Core类。
- 看起来safehtml管道只能在很少的情况下使用。angular.io/api/platform-browser/dom消毒剂
- @Crice专注于你所写的应用程序。如果你想拥有依赖它的功能,你就没有太多选择。您应该知道,如果您不小心,可以创建安全漏洞。
- @G&252;nterz&246;chbauer是的,我同意,我只是想指出这一点,以便人们首先考虑它,而不是在所有情况下复制管道。