Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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
根据调用同一函数的html组件,在同一函数中执行不同的操作_Html_Angular_Typescript - Fatal编程技术网

根据调用同一函数的html组件,在同一函数中执行不同的操作

根据调用同一函数的html组件,在同一函数中执行不同的操作,html,angular,typescript,Html,Angular,Typescript,我正在angular中制作一个基本的切换应用程序。我有两个切换按钮。我正在toggle中显示一条消息。我想在切换时调用相同的函数,但根据切换的按钮执行不同的操作。是否可能,或者我必须使用两个不同的函数?提前谢谢你的帮助 以下是我的模板代码: <mat-card class="card" fxLayout="column" fxLayoutAlign="center center" > <form class="example-form" [formGroup]="formGro

我正在angular中制作一个基本的切换应用程序。我有两个切换按钮。我正在toggle中显示一条消息。我想在切换时调用相同的函数,但根据切换的按钮执行不同的操作。是否可能,或者我必须使用两个不同的函数?提前谢谢你的帮助

以下是我的模板代码:

<mat-card class="card" fxLayout="column" fxLayoutAlign="center center" >
<form class="example-form" [formGroup]="formGroup" (ngSubmit)="onFormSubmit()" ngNativeValidate>

  <mat-action-list>
    <mat-list-item > <mat-slide-toggle       
      (change)="onChange($event);displayMessage($event)"   formControlName="Policy1" >
      <span class="label">{{message}}</span></mat-slide-toggle></mat-list-item> 
    <mat-list-item > <mat-slide-toggle  (change)="onChange($event)"  formControlName="Policy2">Policy2</mat-slide-toggle></mat-list-item>

  </mat-action-list>
  <p>Form Group Status: {{ formGroup.status}}</p>

  <button mat-raised-button [disabled]="disable" class="button" type="submit">Save Settings</button>

</form>
</mat-card>

(change)
发射器中的
$event
对象有一个
srcElement
,当您想找出是哪个元素导致了更改时,可以参考该对象


如果要检索调用函数的元素的id,可以使用
event.srcelelement.id

将更多参数传递给处理程序:

<mat-slide-toggle *ngFor="let item of thingsToDo; let i = index"
   (change)= "onToggle($event, item.id, i)">

检查这个:你能提供一个stackblitz的例子吗?@PrashantPimpale我试图在一个函数中完成它,而不是使用不同的函数。这可能会起作用,但不是很好@mbojko回答更为惯用,因为我无法检索id。当我尝试使用e.srcElement.id获取id时,我遇到了无法读取未定义的属性“id”的错误。我必须对模板代码进行任何更改吗?
<mat-slide-toggle *ngFor="let item of thingsToDo; let i = index"
   (change)= "onToggle($event, item.id, i)">
onToggle = (event, id, indexInArray) => { //...