Я использую mat-menu для отображения списка опций для пользователя.Когда пользователь нажимает на опцию, он должен инициировать отправку моей formGroup.
dropdown.component.html
<form [formGroup]="myForm" (ngSubmit)=onSubmit(myform)>
<button mat-button [matMenuTriggerFor]="options" type="submit">
Options
</button>
<mat-menu #options="matMenu">
<button mat-menu-item (click)="test()" type="submit">
This is an Option //Submit formgroup when this button is clicked
</button>
</mat-menu>
</form>
dropdown.component.ts
import { Component, Input } from '@angular/core';
import { FormGroup } from '@angular/forms';
@Component({
selector: 'filter-dropdown',
templateUrl: './filter-dropdown.component.html'
})
export class FilterDropdown implements OnInit{
myForm: FormGroup;
ngOnInit(){
this.myForm = new FormGroup({});
}
onSubmit(form: FormGroup) {
console.log('submitting...') //Only logs when 'Options' is clicked, not the mat-menu-item
}
test(){
console.log('test has registered') //Logs when mat-menu-item is clicked
}
}
Когда я нажимаюmat-menu-item
, функция test()
вызывается, но не onSubmit()
.Только когда я удаляю элемент из основного меню и оставляю его как отдельную кнопку, он может вызвать функцию отправки.
<form [formGroup]="myForm" (ngSubmit)=onSubmit(myform)>
<button mat-button type="submit">
Options
</button>
<button (click)="test()" type="submit">
This is an Option //Submits now that it is no longer part of a mat-menu
</button>
</form>
Как получить эту кнопку для отправки, когда она также является элементом mat-menu
?