angular - 反应形式 - 输入字段自动聚焦 - Angular
问题描述
我有奇怪的问题。演示
.ts
import { Component } from '@angular/core';
import { FormGroup, FormBuilder } from '@angular/forms';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
myForm: FormGroup;
constructor(private formBuilder: FormBuilder) {}
ngOnInit() {
this.myForm = this.formBuilder.group({
'options': this.formBuilder.array([this.createOption()])
});
}
createOption(): FormGroup {
return this.formBuilder.group({
'name': [null]
});
}
}
.html
<form novalidate [formGroup]="myForm" >
<div formArrayName="options" class="mt-3">
<div [formGroupName]="i" *ngFor="let option of myForm.get('options').value; let i = index;">
<input id="{{'name' + i}}" autocomplete="off" type="text" class="form-control" aria-label="Name"
formControlName="name">
</div>
</div>
</form>
我有一个包含多个选项name
字段的表单。在 html 中,我有每个选项的循环来显示字段。现在,如果我在输入字段中输入任何字符,它会自动聚焦在该字段之外。
如果我*ngFor="let option of myForm.get('options').value; let i = index;"
改为*ngFor="let option of myForm.get('options').controls; let i = index;"
- 它可以解决问题。
但是,如果我尝试将其部署到生产环境中并运行
ng build --prod
它给出了错误Property 'controls' does not exist on type 'AbstractControl'.
在这方面需要帮助。
解决方案
而不是循环,myForm.get('options').value
你应该循环myForm.get('options').controls
这应该可以解决问题:
<form novalidate [formGroup]="myForm" >
<div formArrayName="options" class="mt-3">
<div [formGroupName]="i" *ngFor="let option of myForm.get('options').controls; let i = index;">
<input id="{{'name' + i}}" autocomplete="off" type="text" class="form-control" aria-label="Name" formControlName="name">
</div>
</div>
</form>
推荐阅读
- macos - 如何使用苹果脚本将消息标记为已读?
- java - AsyncTask 完成,但 Activity UI 超过 20 秒未更新
- python - 如何使用代理艺术家为 Matplotlib 中的轮廓图创建图例
- batch-file - 批处理 - 如果音频文件没有播放,它是否被认为是一项任务?
- spring - Spring LDAP 和 Spring Cloud Consul 可以一起工作吗?
- java - 使用 JPA 和 Hibernate 时如何避免超类查询中的多态性
- java - 使用 setcap 功能运行时 JLI_InitArgProcessing 的 Java“符号查找错误”
- html - 制作响应式广告页面 html bootstrap
- mongodb - 如何根据动态值在 Apache NiFi 中查询 MongoDB?
- java - Azure java sdk 中长期存在的 Azure 和 Azure.Authenticated 客户端的保证是什么?