我遇到一种情况,使用时可以在运行时在FormControls
中添加FormArray
。其中包含一个下拉控件。我想限制用户只能从下拉列表中选择 Sequence 选项。这样,如果已经选择了序列,并且用户添加了新行,那么在新的下拉序列菜单菜单中将被禁用。
如果我使用*ngIF
并在typescript中声明了变量,它将在所有下拉列表(包括第一个下拉列表)中禁用序列选项
我用来生成控件的代码
<div formArrayName="components"
*ngFor="let c of components.controls; let i=index">
<div [formGroupName]="i">
<div class="form-group row">
<div class="col-md-3">
<select type="" id="component" class="form-control" placeholder="" formControlName="component" (change)="onChange(i)">
<option value="Constant">Constant</option>
<option value="Hash">Hash</option>
<option value="Sequence">Sequence</option>
</select>
</div>
<div class="col-md-2">
<input type="number" id="limit" min="1" class="form-control" formControlName="limit" [readOnly]="c.get('component').value == 'Constant'" (input)="onChange(i)" />
</div>
<div class="col-md-4">
<input type="text" id="value" class="form-control" formControlName="value" (input)="onChange(i)" [readOnly]="c.get('component').value == 'Hash'" />
</div>
<div class="col-md-2">
<button class="btn btn-sm btn-danger" (click)="deleteRow(i)">Remove <fa name="times"></fa></button>
</div>
</div>
</div>
</div>
UI看起来像这样
该怎么做?