Angular 提交表单时传递参数

Angular 提交表单时传递参数,angular,angular9,Angular,Angular9,使用Angular 9,我有以下形式: <form [formGroup]="form" (ngSubmit)="onSignUp()"> <label for="email">Email</label> <input id="email" type="text" formControlName="email">

使用Angular 9,我有以下形式:

  <form [formGroup]="form" (ngSubmit)="onSignUp()">
    <label for="email">Email</label>
    <input id="email" type="text" formControlName="email">
    <button type="submit">SignUp as Professor</button>
    <button type="submit">SignUp as Student</button>
  </form>
提交表单时如何传递类型

<button type="submit">SignUp as Professor</button> -> type = 'professor'
注册为教授->类型='Professor'

注册为学生->类型='Student'

为方便起见,您应该删除(ngSubmit)并将该功能添加到两个按钮中

在HTML中

<form [formGroup]="form" >
<label for="email">Email</label>
<input id="email" ng-model="email" type="text" formControlName="email">
<button  ngClick="onSignUp('Professor')">SignUp as Professor</button>
<button  ngClick="onSignUp('Student')">SignUp as Student</button>

很好。使用如下的点击处理程序:(点击)=“点击处理程序($event)”表示Angular2+。ng click是一个AngularJS概念。
<button type="submit">SignUp as Student</button> -> type = 'student'
<form [formGroup]="form">
    <label for="email">Email</label>
    <input id="email" type="text" formControlName="email">
    <button type="submit" (click)="handleProfessorClick($event)">SignUp as Professor</button>
    <button type="submit" (click)="handleStudentClick($event)">SignUp as Student</button>
  </form>
handleStudentClick(event) {
   event.preventDefault()
   ...your logic
}

handleProfessorClick(event) {
   event.preventDefault()
   ...your logic
}
<form [formGroup]="form" >
<label for="email">Email</label>
<input id="email" ng-model="email" type="text" formControlName="email">
<button  ngClick="onSignUp('Professor')">SignUp as Professor</button>
<button  ngClick="onSignUp('Student')">SignUp as Student</button>
onSignUp(type: string) {
    let data = {email: this.email, type: type} 
    this.http.post('http://someurl', JSON.stringify(data ));
 }