Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么不';mat菜单中的t按钮是否提交?_Angular_Forms_Angular Material_Angular Reactive Forms - Fatal编程技术网

Angular 为什么不';mat菜单中的t按钮是否提交?

Angular 为什么不';mat菜单中的t按钮是否提交?,angular,forms,angular-material,angular-reactive-forms,Angular,Forms,Angular Material,Angular Reactive Forms,我正在使用mat菜单为用户显示选项列表。当用户单击某个选项时,它应该触发提交my formGroup dropdown.component.html 当我单击mat菜单项时,会调用test()函数,但不会调用onSubmit()。只有当我从mat菜单中删除该项并将其保留为独立按钮时,它才能调用submit函数 <form [formGroup]="myForm" (ngSubmit)=onSubmit(myform)> <button mat-button ty

我正在使用mat菜单为用户显示选项列表。当用户单击某个选项时,它应该触发提交my formGroup

dropdown.component.html

当我单击
mat菜单项
时,会调用
test()
函数,但不会调用
onSubmit()
。只有当我从mat菜单中删除该项并将其保留为独立按钮时,它才能调用submit函数

<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菜单的一部分

当这个按钮还是
mat菜单的一项时,我如何才能让它提交呢?

由于下拉列表是在表单外部呈现的,您无法提交表单,因此请使用
[matMenuTriggerData]=“{form:testForm}”
传递表单引用,在下拉列表中,您可以使用
触发表单提交(单击)=“form.ngSubmit.emit()”
,请检查下面的参考示例


这里发生的是mat菜单组件的内容将在表单之外呈现

您可以使用以下几个选项使其正常工作:

1) 直接提交表格

<form #form="ngForm" ...>
  ...
  <mat-menu #options="matMenu">
    <button mat-menu-item (click)="form.onSubmit($event)" type="submit">
      ...
    </button> 
  </mat-menu>
</form> 
<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>
<form #form="ngForm" ...>
  ...
  <mat-menu #options="matMenu">
    <button mat-menu-item (click)="form.onSubmit($event)" type="submit">
      ...
    </button> 
  </mat-menu>
</form> 
<form id="myForm" ...>
  ...
    <mat-menu #options="matMenu">
        <button mat-menu-item form="myForm" type="submit">
                ...
        </button> 
    </mat-menu>
</form>