javascript - 检查所有控制表格
问题描述
我创建一个这样的formGroup
this.availableSigners = new FormGroup({
nameSigner: new FormControl(),
mailSigner: new FormControl()
});
在我的 html 组件中,我有这个
<div *ngFor="let signer of signers; let i = index">
<div class="form-row">
<div class="card-body col-md-4" style="padding-top: 0.75rem !important">
<b>{{signer.name}} {{signer.surname}}
</b>
</div>
</div>
<div class="form-row" >
<div class="col-md-4">
<ng-select #mailDocumentSelect
formControlName="mailSigner" [items]="mails"
bindValue="code" bindLabel="description"
(click)="getMails()">
</ng-select>
</div>
<div class="col-md-4">
<ng-select>
</ng-select>
</div>
</div>
<br>
</div>
其中 signers 是一个通过单击填充的列表,并创建一个选择邮件列表。
我的问题是我试图控制每个 mailSigner 的 formcontrolname 都有价值。
我创建了这个函数,该函数通过单击另一个按钮来调用
getCompiledFeq(){
if(this.availableSigners.get('mailSigner').value){
return true;
}
return false;
}
但是当只有一个选定的值(并且不控制每个表单控件)时,此控件返回 true。
如何控制每个选择表单的价值?
解决方案
您不能有多个具有相同名称的表单控件。
您可以使用索引来区分它们。
在您的 ts 文件中,您需要循环抛出所有签名者并为每个具有唯一 ID 的签名者添加一个控件,如下所示
this.availableSigners = new FormGroup({
nameSigner: new FormControl(),
mailSigners: new FormArray()
});
for (let i = 0; i < signers.length; i++) {
this.availableSigners.get('mailSigners').push('mailSigner-' + i , new FormControl('', Validators.required));
}
并在您的 html 文件中更改formControlName
为“mailSigner-{{i}}”以获得唯一索引
<div *ngFor="let signer of signers; let i = index">
<div class="form-row">
<div class="card-body col-md-4" style="padding-top: 0.75rem !important">
<b>{{signer.name}} {{signer.surname}}
</b>
</div>
</div>
<div class="form-row" >
<div class="col-md-4">
<ng-select #mailDocumentSelect
formControlName="mailSigner-{{i}}" [items]="mails"
bindValue="code" bindLabel="description"
(click)="getMails()">
</ng-select>
</div>
<div class="col-md-4">
<ng-select>
</ng-select>
</div>
</div>
<br>
</div>
推荐阅读
- go - 具有默认 LambdaRole 的 Dynamo UpdateItem AccessDeniedException
- css - 在悬停时更改容器内的所有其他 div
- c++ - 使用哪种设计模式来获得想要的功能
- python - 在 Python 中创建交叉表时出错。TypeError:列表索引必须是整数或切片,而不是元组
- flutter - 每次我回到这里时如何刷新页面?
- opencl - 为什么多个进程访问单个 GPU 会提高性能?
- google-data-studio - 为什么在 Google Data Studio 中过滤时不显示 Null?
- css - 从内部范围覆盖 :root CSS 变量
- spring-restdocs - Spring REST Docs 在 curl 和 HTTP 请求片段中重复没有值的查询参数
- vue.js - Vuetify / 嵌套验证