【发布时间】:2018-12-04 11:06:00
【问题描述】:
当用户单击按钮时,我会在运行时添加 HTML 元素。
我通过将 div 的内部 html 设置为构建的字符串然后使用 DOMSanitizer 来做到这一点。
视觉上看起来不错,但是新 HTML 中的点击事件没有绑定,所以没有任何效果,我猜是因为 HTML 是在编译后生成的。
这是当用户点击添加新组件时调用的代码(它会填充正确的数据),谁能建议我应该如何将它连接到删除图像中的点击事件?
页面上的html:
<div class="col-sm-9" >
<div [innerHtml]="contentHtml"></div>
</div>
代码:
async AddText(contentText: string) {
this.htmlToAdd = this.htmlToAdd + ( '<br> <div class="card text-left">' +
'<div class="card-header text-secondary">Attraction Text' +
'<img align="right" class="image-hover pull-right table-header-padding" src="assets/images/LockLineIcon.png" />' +
'<img #delete class="image-hover float-right text-danger icon-pad draft-icon-indent" src="assets/images/DeleteIcon.png" (click)="this.delete(0)"/>' +
'</div>' +
'<div class="card-body" >' +
'<textarea id="text" name="text" type="text" class="form-control" required maxlength="2048" >' + contentText + '</textarea>' +
'</div>' +
'<div class="card-footer">' +
'<img align="right" class="pull-right table-header-padding" src="assets/images/DragUpDownIcon.png" />' +
'</div>' +
'</div>');
this.contentHtml = this.sanitizer.bypassSecurityTrustHtml(this.htmlToAdd);
}
【问题讨论】:
标签: html angular typescript innerhtml