Javascript 角度窗体组-自动将另一个字段的值除以100

Javascript 角度窗体组-自动将另一个字段的值除以100,javascript,angular,typescript,calculated-field,Javascript,Angular,Typescript,Calculated Field,我在一个角形组中有3个字段,其中一个字段基本上是用户的工具,可以自动从另一个字段中分割值。因此,用户键入一个数字,另一个字段自动显示该值除以100 看起来是这样的: formGroup = new FormGroup({ Buildyear: new FormControl(this.buildyear, [Validators.minLength(4), Validators.maxLength(4)]), Areasize:

我在一个角形组中有3个字段,其中一个字段基本上是用户的工具,可以自动从另一个字段中分割值。因此,用户键入一个数字,另一个字段自动显示该值除以100

看起来是这样的:

formGroup = new FormGroup({
        Buildyear:           new FormControl(this.buildyear, [Validators.minLength(4), Validators.maxLength(4)]),
        Areasize:            new FormControl(this.areasize, [Validators.required] ),
        Areasize_divided:    new FormControl(''),
     });
“Areasize_divided”会自动分割“Areasize”内的值,默认情况下,该字段中已有一个值,但如果用户在“Areasize_divided”中键入新值,则该值也应在“Areasize_divided”中自动计算。反过来说,如果用户在“Areasize\u divided”中输入一个值,它会自动将“Areasize”乘以100


实现这种效果的最佳方法是什么?

您应该听取表单控件的更改,并相应地更新其他控件

formGroup.get('Areasize')
  .valueChanges
  .subscribe(value => formGroup
    .get('Areasize_divided')
    .setValue(isNaN(value) ? 0 : value / 100)
  );

谢谢你的回答!是否建议在ngOninit()中实现此功能?还是一个单独的函数?@bobdolan你应该在你想的时候做:如果你想的话,你甚至可以创建一个按钮
自动除以100
。@bobdolan但是如果我必须这样做,我会在创建表单后马上做。好的,我会试试。表单字段自动更新值,而用户无需单击按钮,这一点很重要。我不太确定如何实现这一点。您应该将控件设置为禁用(这样用户就不会自己输入),并在创建表单后立即使用这段代码。但是,这只是我的观点,这在很大程度上取决于你的项目!