嘿我试图通过在模态体中编写html来显示模态中的搜索栏,如下所示:
onClick() {
const dialogRef = this.modal.alert()
.size('lg')
.showClose(true)
.title('A simple Alert style modal window')
.body(`
<div class="card container-fluid col-xs-10">
<div class="card-block">
<div class="form-group row">
<div class="col-5">
<ng2-completer class="completer-limit"
[(ngModel)]="searchStr"
[datasource]="dataService"
[minSearchLength]="0"
[inputClass]="'form-control'"
[placeholder]="'Enter the class you would like to add'"
[matchClass]="'match'"
[autofocus]="true"
[textSearching]="false">
</ng2-completer>
</div>
</div>
</div>
</div>`)
.open();
}
.body中的html尝试引用与onClick函数相同的.ts文件中的数据。作为参考运行,相应的html文档中的这个html工作得很好(不是模态)。在模态中添加通用html也很好(简单文本)。但是,当我添加此代码时,搜索栏不会呈现,并且在开发人员控制台中会显示:警告:清理HTML会删除一些内容(请参阅http://g.co/ng/security#xss)。任何人都知道发生了什么事吗?对不起,如果这个问题很难,因为我使用的是套餐。它们是搜索栏的ng2-completer和模态的ngx-modialog。我认为这个问题可能是根本性的,与程序包无关,但这就是我要求stackoverflow的原因。问题是模态体中的html无法引用.ts文件这个onClick函数,因为模板指向一个单独的html文件,或者我是否仍然能够引用.ts文件中的对象?
答案 0 :(得分:2)
问题是您将字符串中的HTML传递给modal.alert().body()
函数
所以Angular不相信它。它可能是代码注入的来源,因此被消毒。你需要找到另一种方式 - 你的模态是否接受模板或组件作为参数,如果是这样,那将是这样做的方式。