角度:限制用户仅选择一次菜单选项

时间:2018-10-10 00:15:57

标签: angular-reactive-forms angular4-forms

我遇到一种情况,使用时可以在运行时在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看起来像这样

image

该怎么做?

0 个答案:

没有答案