【发布时间】:2019-06-03 14:37:45
【问题描述】:
我有一个小应用程序,我收到一个问题,其中包含一些隐藏的单词,要这样写:
The {0} {1} {2} his {3} off
收到此字符串后,必须将每个{x} 字符串替换为用户将填写正确答案的输入。为此,我创建了以下代码:
HTML 部分
<div *ngFor="let question of questionsArray">
---- some stuff ----
<div [innerHTML]="createQuestion(question)"></div>
---- some stuff ----
</div>
打字稿功能:
createQuestion(question: string): SafeHtml {
let innerHtml = '';
let words = question.split(' ');
for (let index = 0; index < words.length; index++) {
const element = words[index];
if (element.indexOf('{') >= 0) {
innerHtml += '<input type="text" name="test"></input>';
} else {
innerHtml += element;
}
}
return this.sanitizer.bypassSecurityTrustHtml(innerHtml);
}
我还在构造函数中添加了DomSanitizer,如下所示:
constructor(private sanitizer: DomSanitizer) {}
它可以正常工作并像这样绘制输入:
但是我不能在输入上写任何东西。我想byPassSecurityHtml 可能无法正常工作,因为我没有按照建议的here 使用任何Pipe。但是,由于我需要以动态方式创建它,因为它需要在我的 DOM 中调用 foreach question,所以我无法弄清楚如何正确使用它...
谁能帮帮我?
【问题讨论】:
标签: angular typescript html-sanitizing