【发布时间】: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