gpt4 book ai didi

javascript - 没有ngFor的 Angular 2选择控件

转载 作者:行者123 更新时间:2023-11-30 09:28:03 24 4
gpt4 key购买 nike

当创建一个选择控件时,带有可能从数据库中提取的选项,似乎习惯在模板端放置一个 ngFor 来呈现选项。

我想做的是在组件端有一个循环,用以下选项构建一个字符串:

for (var i = 0; i < 20; i++) {
this.selectOptions += "<option value=" + i + ">" + i + "</option> ";
}

然后在像这样的模板端:

<select>
{{selectOptions}}
</select>

我想这样做的原因是我在一个复杂的 UI 中有一些嵌套循环,以及几个具有相同选项的选择。呈现后选项不会改变。

我想摆脱所有正在运行的 ngFor 以尝试加速我的 UI。我还需要做其他事情,但我认为这是可以提供帮助的事情。然后选项的循环只需运行 1 次而不是一遍又一遍。

最佳答案

尝试使用 [innerHTML]连同 DomSanitizer :

https://stackblitz.com/edit/angular-kpkk4v?file=app%2Fapp.component.ts

组件:

export class AppComponent  {
options = '<option value=1>1</option><option value=1>1</option>';
optionsHTML: any;

constructor(private sanitizer: DomSanitizer) {
this.optionsHTML = this.sanitizer.bypassSecurityTrustHtml(this.options);
}
}

模板:

<select [innerHTML]="optionsHTML"></select>

注意:

您需要清理 HTML 以便 Angular 渲染它,否则 Angular 将删除 HTML,您得到的只是一个字符串渲染 <select>11</select>

关于javascript - 没有ngFor的 Angular 2选择控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48169532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com