[英]Mat-Select dropdown doesn't select any of options
所以我用补丁值加载我的表单,由于某种原因,mat-select 不会基于该值 select 。
这是我所拥有的:
constructor(private _formBuilder: FormBuilder,
private productServices : ProductsService,
private activatedRoute: ActivatedRoute,
private router : Router) {
this.moods=[
{mood: 'steak-0', viewValue: 'Steak'},
{mood: 'pizza-1', viewValue: 'Pizza'},
{mood: 'tacos-2', viewValue: 'Tacos'}
];
}
ngOnInit() {
this.completeProfileForm = this._formBuilder.group({
title :['',Validators.required],
releaseDate: ['', Validators.required],
resolution: ['', Validators.required],
displayName: ['', Validators.required],
description: ['', Validators.required],
type: ['', Validators.required],
primary_mood: ['', Validators.required],
secondary_mood: ['', Validators.required],
price: [null, Validators.required],
});
}
<mat-form-field class="form-field" appearance="fill">
<mat-label>Primary Mood</mat-label>
<mat-select formControlName="primary_mood" >
<mat-option *ngFor="let mood of moods" [value]="mood.value">
{{mood.mood}}
</mat-option>
</mat-select>
<mat-error *ngIf="completeProfileForm.controls.primary_mood.touched && completeProfileForm.controls.primary_mood.invalid">
<span *ngIf="completeProfileForm.controls.primary_mood.errors.required">Please select your artwork Type.</span>
</mat-error>
</mat-form-field>
你们能帮帮我吗
我同意朱利安刘的观点。 您的 HTML 中有错字。 你说
[value]="mood.value"
但在您的 object 中,该字段名为viewValue
。
以这种方式更正您的 HTML:
<mat-option *ngFor="let mood of moods" [value]="mood.viewValue">
{{mood.mood}}
</mat-option>
要查看您的结果,请保留我的进一步建议并将这段代码放在ngOnInit()
的末尾。
this.completeProfileForm.get('primary_mood').valueChanges.subscribe(selection => console.log('you selected: ' + selection));
您现在应该在控制台中看到您的选择。 现在你必须找到一种方法来利用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.