Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 角度-在按tab键时动态添加一组字段_Angular_Loops_Dynamic Programming_Textfield - Fatal编程技术网

Angular 角度-在按tab键时动态添加一组字段

Angular 角度-在按tab键时动态添加一组字段,angular,loops,dynamic-programming,textfield,Angular,Loops,Dynamic Programming,Textfield,我在7号楼工作。 目前正在做的是, 用户可以输入数量(1、2、3等),动态字段的数量将按数量排列 我想要实现的是删除数量字段,默认情况下获得一组字段,当用户位于最后一个字段并按下“tab按钮”时,该字段开始归档,自动生成下一组动态字段。 例如: 当前正在执行的操作: 颜色:_______ 形状:_______ 输入数量:1 //字段集重复1次 颜色:_______ 形状:_______ 我想要实现的目标: 颜色:_______ 形状:\当我按“tab按钮”时,当我的输入集中在形状上时,会自动生成

我在7号楼工作。 目前正在做的是,

用户可以输入数量(1、2、3等),动态字段的数量将按数量排列

我想要实现的是删除数量字段,默认情况下获得一组字段,当用户位于最后一个字段并按下“tab按钮”时,该字段开始归档,自动生成下一组动态字段。

例如:

当前正在执行的操作:

颜色:_______

形状:_______

输入数量:1

//字段集重复1次

颜色:_______

形状:_______

我想要实现的目标:

颜色:_______

形状:\当我按“tab按钮”时,当我的输入集中在形状上时,会自动生成一组新字段

My componenent.ts文件:

 public myForm: FormGroup;
  constructor(private _fb: FormBuilder) { }

  ngOnInit() {
    this.myForm = this._fb.group({
      FrontEnd: ['',],
      languages: this._fb.array([
          this.initlanguage(),
      ])
  });
  }

   initlanguage() {
        return this._fb.group({
            color: [''],
            shape: ['']
        });
    }

    qty:number;
    newqty:number;
    addLanguage() {
      for(this.qty=0;this.qty<this.newqty;this.qty++){
      const control = <FormArray>this.myForm.controls['languages'];
      control.push(this.initlanguage());
      }
  }

  removeLanguage(i: number) {
      const control = <FormArray>this.myForm.controls['languages'];
      control.removeAt(i);
  }
公共myForm:FormGroup;
构造函数(私有_fb:FormBuilder){}
恩戈尼尼特(){
this.myForm=this.\u fb.group({
前端:['',],
语言:this.\u fb.array([
this.initlanguage(),
])
});
}
initlanguage(){
将此返回。\u fb.group({
颜色:[''],
形状:['']
});
}
数量:数量;
新增数量:编号;
addLanguage(){
对于(此数量=0;此数量
颜色
形状
添加另一个字段集+
提交
总结:
当用户在最后选择的输入字段上按tab键时,生成动态字段集。

根据内存,我应该使用keydown事件:
,在自定义方法中,您可以执行所需操作。根据内存,我应该使用keydown事件:
,在自定义方法中,您可以执行所需操作。
        <form [formGroup]="myForm" novalidate (ngSubmit)="save(myForm)">
          <div formArrayName="languages">
            <div *ngFor="let language of myForm.controls.languages.controls; let i=index" class="panel panel-default">
              <div class="panel-heading">
                <span class="nc-mobile pull-right" *ngIf="myForm.controls.languages.controls.length > 1" (click)="removeLanguage(i)"></span>
              </div>
              <div class="panel-body" [formGroupName]="i">
                <div class="form-group col-xs-6">
                  <label>Color</label>
                  <input type="text" class="form-control" formControlName="color">
                </div>
                <div class="form-group col-xs-6">
                  <label>Shape</label>
                  <input type="text" class="form-control" formControlName="shape">
                </div>
              </div>
            </div>
          </div>
      <input placeholder="Enter Quantity here" [(ngModel)]="newqty"/> 

          <div class="margin-20">
            <a (click)="addLanguage()" style="cursor: default">
              Add another Fieldset +
            </a>
          </div>

          <div class="margin-20">
            <button type="submit" class="btn btn-primary pull-right" [disabled]="!myForm.valid">Submit</button>
          </div>
        </form>