【发布时间】:2021-08-02 06:00:03
【问题描述】:
由于某种原因,在 Angular 反应形式的选择元素上未检测到更改。以下是代码摘录
组件html代码
<form (ngSubmit)="onSubmit()" [formGroup]="postProjectForm">
<div class="form-group">
<label>Job Type:</label>
<select formControlName="jobType" (change)="onChange($event.target.value)" >
<option *ngFor="let jt of jobTypes" [value]="jt">{{jt}}</option>
</select>
</div>
</form>
组件js代码
jobTypes = ['Full time', 'Part time', 'Intership', 'Freelancing'];
constructor(private fb: FormBuilder){
this.postProjectForm = this.fb.group({jobType: new FormControl(this.jobTypes[0])})
}
onSubmit() {
console.log(this.postProjectForm.get('jobType').value);
}
onChange(val){
console.log(val);
}
代码开始正常,即选择填充三个四个值,默认值是“全职”。但是,当我更改选项并提交时, onSubmit 方法会记录初始值( Full Time )。 而且 onChange 方法根本不会触发!
【问题讨论】:
-
这没有帮助。此外 this.postProjectForm.controls.jobType.pristine 在 onSubmit 中仍然显示为 true,即使我更改了选择值并提交
-
this.fb.group({jobType: this.jobTypes[0]})。如果您使用 formBuilder not 使用新的 FormControl,请参阅,例如stackoverflow.com/questions/68470645/… -
还是一样,由于某些原因它在其他页面/组件中工作
标签: javascript angular angular-reactive-forms formgroups