angular - 如何检查 ngFor 内部的条件
问题描述
我正在使用 formArray 进行动态选择。如果已选择选项,我想禁用选择字段中的选项。
我正在使用角度 8
<form [formGroup]="surveyForm">
<div formArrayName="question1">
<label>Question 1</label>
<div *ngFor="let que of question.controls;let i=index">
<select [formControlName]="i">
<option *ngFor="let emp of employeeList" [value]="emp.id">{{ emp.name }}</option>
</select>
<button (click)="delPerson(i)">Delete</button>
</div>
<button (click)="addPerson()">Add Person</button>
</div>
<button type="submit" [disabled]="!surveyForm.valid" (click)="onSubmit()">Submit</button>
</form>
解决方案
使用可以使用里面存储的表单控件formArray
来检查id
和selected
值
<div formArrayName="question1" *ngFor="let que of surveyForm.get('question1').controls;let i=index">
<label>Question 1</label>
<div>
<select [formControlName]="i">
<option *ngFor="let emp of employeeList" [value]="emp.id" [disabled]='emp.id == que.value'>{{ emp.name }}</option>
</select>
Selected Id : {{que.value}}
<button (click)="delPerson(i)">Delete</button>
</div>
<button (click)="addPerson()">Add Person</button>
</div>
<button type="submit" [disabled]="!surveyForm.valid" (click)="onSubmit()">Submit</button>
</form>
请参阅 Stackblitz 示例:https ://stackblitz.com/edit/angular-svor7x
推荐阅读
- c - 面试题:两个整数相等的最长前缀
- python - 我在 windows10 上的 anaconda 无法识别 levenshtein 模块
- wordpress - 如何从 WordPress 仪表板启用和禁用外观
- jwt - 添加声明以访问令牌密钥斗篷
- c++ - C++ - 将元素按升序插入数组的段错误
- html - 如何从 HTML 标签中获取 imageURL
- python - 您好,python 3.8.1 的 dedent 空闲是否有问题
- ios - 如何阻止书签崩溃 PDF 应用程序?
- swiftui - SwiftUI 如何在 WKWebView 中添加活动指示器?
- php - 如何在 PHP 中显示数据库中的数据,其中每出现 4 个数据,然后将其他数据放在下面