如何在角度2上生成随机数输入表格组索引

时间:2017-01-20 02:54:51

标签: javascript angular typescript

我有一个动态表单输入,用户可以按下按钮添加更多输入字段,这些输入字段将使用ngFor绑定到模板,如下所示:

getTasks(myFormdata) {
    return myFormdata.get('inputs').controls
  } 

和ts文件

getRandomNumber() {
    const random = Math.floor(Math.random() * (999999 - 100000)) + 100000;
    const control = <FormArray>this.myFormdata.controls['inputs'];
    control.setValue([{numbers: random, pari: 25}])
}

这一切都很棒。用户可以添加新的输入字段,但我有一个按钮,它将生成一个随机数并将随机数设置为输入值。因为我是Angular 2的新手,所以当有多个输入字段时,我似乎无法实现它。在字段中生成随机数的方法如下:

getRandomNumber()

我的{{1}}方法缺少什么使它为每个添加的字段生成一个随机数?

2 个答案:

答案 0 :(得分:4)

我得到了解决方案......以下是我的解决方案

  getRandomNumber(i: number) {
    let random = Math.floor(Math.random() * (999999 - 100000)) + 100000;
    const control = <FormArray>this.myFormdata.controls['inputs'];
    const random = this._fb.group({numbers: +quickpicked, pari: 25});
    control.setControl(i, random)


  }

答案 1 :(得分:0)

export class AppComponent {
  title = 'codegenerator';
  date = new Date();
  codeGenerated = '';
  evtMsg: any;
  randomString() {
 const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
 const stringLength = 10;
 let randomstring = '';
 for (let i = 0; i < stringLength; i++) {
 const rnum = Math.floor(Math.random() * chars.length);
 randomstring += chars.substring(rnum, rnum + 1);
}
 this.codeGenerated = randomstring;
 return 0;
}
}
  <div class="card text-center" style="width: 40rem;">
      <div class="card-head">
        <button (click)="randomString()" class="d-inline bg-primary btn-lg text-white">Generate code</button>
      </div>
      <div class="card-body">
        <h1 class="display-2 text-dark">{{codeGenerated}}</h1>
      </div>
      </div>

Github source with angular 8