表单数组中的动态垫选择选项

myd*_*end 5 dynamic angular formarray angular6

我有一个动态表单组。

示例用户界面图像

两种垫子选择都是动态的。当我按下添加按钮时,它会添加另一个具有相同元素和相同动态字段的表单数组。

在表单组数组的第一个索引中,当我更改 CATEGORY 列中 mat-select 的值时,它将根据从数据库获取的值填充 JOB 列。

我的问题是,当我添加另一个表单组数组时,mat-select 仍然是动态的,但是当我更改第二行、CATEGORY 列中的 mat-select 的值时,它会更改 JOBS 列中基于的所有行获取第一列中的数据。

HTML 文件

<mat-form-field>
  <mat-select formControlName="categories" 
          (selectionChange)="getJobs($event.value)">
              <mat-option *ngFor="let cat of categories" 
                 [value]="cat.jobCatID">
                {{cat.name}}
              </mat-option>
  </mat-select>
</mat-form-field>
<mat-form-field>
   <mat-select formControlName="jobs">
          <mat-option *ngFor="let job of jobs" [value]="job.jobID">
            {{ job.name}}
          </mat-option>
   </mat-select>
 </mat-form-field>
Run Code Online (Sandbox Code Playgroud)

.TS文件

getJobs(id){
return this.category.getJob(id).subscribe(
  data => {
      if(data.success){
        this.jobs=data.jobsCat.jobs
      }
  }
)}
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以使jobs变量动态化,以便在 ngFor 中为每个 JOBS mat-select 提供具有相同值的不同对象变量?

myd*_*end 0

现在一切都好了。我刚刚将工作放入数组中。

jobs:any[]=[];
Run Code Online (Sandbox Code Playgroud)

像这样声明它。然后 fetch 使用索引作为动态数组的参数。