Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在获得对无功formarray的控制方面面临的问题_Angular_Angular Reactive Forms_Angular Forms - Fatal编程技术网

Angular 在获得对无功formarray的控制方面面临的问题

Angular 在获得对无功formarray的控制方面面临的问题,angular,angular-reactive-forms,angular-forms,Angular,Angular Reactive Forms,Angular Forms,我有一个字段名为-> 状态(类型-下拉列表), 城市(类型-克罗普敦) 用于添加定价的复选框 Pricng框(键入-复选框) 每次单击添加按钮时,这些字段都会追加 问题是每个附加表单字段组的州和市字段数据来源相同 当我选择一个状态字段时,具有相同控件的其他附加表单字段将受到影响 我正在分享我的代码 ts文件 PackageDetails : FormGroup; Countrystate = ['J&K' , 'Punjab' , 'Bihar']; ountrycity

我有一个字段名为-> 状态(类型-下拉列表), 城市(类型-克罗普敦) 用于添加定价的复选框 Pricng框(键入-复选框)

  • 每次单击添加按钮时,这些字段都会追加

  • 问题是每个附加表单字段组的州和市字段数据来源相同
    • 当我选择一个状态字段时,具有相同控件的其他附加表单字段将受到影响
    我正在分享我的代码

    ts文件

    PackageDetails : FormGroup;
      Countrystate = ['J&K' , 'Punjab' , 'Bihar'];
      ountrycity = ['Srinager' , 'Chandigarh' , 'Patna'];
    
    
       constructor( public fb: FormBuilder){ 
       this.PackageDetails = this.fb.group({
        Package_budget : this.fb.array([this.addPayment()]),
        });
       }
    
    
       addPayment(): FormGroup {
              return this.fb.group({
              city : [''],
              state : [''],
              custumCosting : [''],
              checktoaddPayemt : ['']
            });
          }
    
       add(): void {
              console.log(this.PackageDetails.get('Package_budget')['controls']);
              console.log((<FormArray>this.PackageDetails.get('Package_budget')));
              (<FormArray>this.PackageDetails.get('Package_budget')).push(this.addPayment());
         }   
    
         onSubmit(){
    
         }
    
    PackageDetails:FormGroup;
    Countrystate=['J&K','Punjab','Bihar'];
    CountryCity=['Srinager','Chandigarh','Patna'];
    构造函数(公共fb:FormBuilder){
    this.PackageDetails=this.fb.group({
    包_预算:this.fb.array([this.addPayment()]),
    });
    }
    addPayment():FormGroup{
    返回此.fb.group({
    城市:[''],
    国家:[''],
    客户成本:[''],
    支票支付方式:['']
    });
    }
    add():void{
    log(this.PackageDetails.get('Package_budget')['controls']);
    log((this.PackageDetails.get('Package_budget'));
    (this.PackageDetails.get('Package_budget')).push(this.addPayment());
    }   
    onSubmit(){
    }
    
    html

    <form [formGroup]='PackageDetails' (ngSubmit)="onSubmit()">
    
    <div formArrayName="Package_budget"
              *ngFor="let skill of PackageDetails.get('Package_budget').controls; let i = index">
              <div [formGroupName]="i">
    
                <div class='block-inline'> <label [for]="'packag_type'+i"> State </label>
                  <select formControlName="state" [id]="'packag_type'+i" (change)='getpackListName()' autocomplete>
                    <option *ngFor="let item of Countrystate" [ngValue]="item" >{{item}}
                    </option>
                  </select>
                </div>
    
                <div *ngIf='packageList.length > 0' class='block-inline'>
                  <label [for]="'package_list_id'+i"> City</label>
                  <select formControlName="city"  autocomplete [id]="'package_list_id'+i" (change)='getPackageDetails(1)'>
                    <option *ngFor="let item of ountrycity" [ngValue]="item">{{item}}</option>
                  </select>
                </div>
    
                <div class='block-inline' class='block-inline' *ngIf='manulaPayBox'>
                  <label [for]="'custumCosting'+i"> </label>
                  <select>
                    <option value='item' *ngFor="let item of currency"> {{item}} </option>
                  </select>
                  <input type='text' formControlName="custumCosting" [id]="'custumCosting'+i" appOnlyNumber="true">
                </div>
    
                <div *ngIf="packageList.length > 0" class='block-inline'>
                  <!-- <checkbox class="example-margin" formControlName="checktoaddPayemt" [id]="'checktoaddPayemt'+i"
                    [labelPosition]="labelPosition" (change)='paymentManual($event)'>
                    {{texttoaddPayemt}}
                  </checkbox> -->
                  <input type="checkbox"(change)='paymentManual($event)'> {{texttoaddPayemt}}<br>
                </div>
              </div>
    
    
    
            </div>
    
            <div>
              <button (click)="add()">add</button>
            </div>
    
           </form> 
    
    
    陈述
    {{item}}
    城市
    {{item}}
    {{item}}
    {{texttoaddpaymt}}
    添加
    这应该会有帮助you@Ravi谢谢,您能告诉我您做了哪些更改吗?添加了未实现的方法,修复了html中未定义的长度,并添加了“提交”按钮来检查表单数据。