【问题标题】:ReactiveForm : ValuesChanges is not defined?反应形式:未定义 ValueChanges?
【发布时间】:2022-07-27 21:08:14
【问题描述】:

我担心的是我在 reactiveForm 中得到了一个未定义的 valueChanges。我开始在这件事上挣扎

这是带有 formControl "treasuryTime" 的表单(我删除了其他 FormControl 没有兴趣):

// Form controls
    this.form = this.formBuilder.group({
      treasuryTime: [null, [Validators.required, CustomValidators.requiredMatch]],
      pensionFund: ['', [Validators.required]],
    });
  }

有问题的值变化:

this.form.controls['treasuryTime'].valueChanges.subscribe((x: IdentifiantLibelleDto) => {
        if (x) {
          console.log("DELAI TRESORERIE ------  " + x.libelle)
          // return undefined.....
        }
      }),

我尝试了语法但没有成功;

  this.form.get('treasuryTime').valueChanges.subscribe((x: IdentifiantLibelleDto) => {
  this.form.controls.['treasuryTime'].valueChanges.subscribe((x: IdentifiantLibelleDto) => {.....

在 html 中,这是一个选择类型元素,我得到了列表的所有项目,所以在这个级别不用担心。

<div class="c-input c-select" [ngClass]="{'error' : this.form.controls.treasuryTime.invalid && this.form.controls.treasuryTime.touched}">
        <select [attr.aria-label]="page + '.treasuryTime' | translate" required formControlName="treasuryTime">
          <option value="" selected>{{ page + '.duration' | translate }}<span class="c-input__mandatory">*</span></option>
          <option *ngFor="let t of treasuryTimes" [value]="t">{{ t.libelle }}</option>
        </select>
        <span class="c-input__error">{{ 'error.required' | translate }}</span>
      </div>

感谢您的帮助

【问题讨论】:

  • 查看您是否需要在创建表单后订阅。顺便说一句,在 .html 中使用“this”是不必要的
  • 感谢您的回答,我的表单是在 ngOnInit() 中构建的。
  • 这样使用会更好:this.form.get('treasuryTime') 你用fromGroup包裹你的fromcontrol了吗?像这样:
  • 谢谢,是的,我在模板/打字稿之间使用了 FormGroup 实例(编辑后)

标签: angular angular-reactive-forms


【解决方案1】:

你确定你已经导入 ReactiveFormsModule 了吗?

【讨论】:

  • 谢谢,是的,我做到了
猜你喜欢
  • 2021-05-04
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多