Angular 单击复选框时不会传递更改事件
下面是代码片段,我希望任何事件(输入元素中的更改或单击复选框)调用函数updateUser。但updateUser仅在输入元素内的内接值上调用,而不是在复选框上调用。另外,如何从复选框中获取值Angular 单击复选框时不会传递更改事件,angular,typescript,Angular,Typescript,下面是代码片段,我希望任何事件(输入元素中的更改或单击复选框)调用函数updateUser。但updateUser仅在输入元素内的内接值上调用,而不是在复选框上调用。另外,如何从复选框中获取值 <div *ngFor="let item of record.roles;let i=index" (change)="updateUser($event)"> <label for="name">AccountId</label> <input
<div *ngFor="let item of record.roles;let i=index" (change)="updateUser($event)">
<label for="name">AccountId</label>
<input type="text" class="form-control" [(ngModel)]="item.accountid" name="accountid" required>
<label>IT Admin</label>
<mat-checkbox [(ngModel)] = "item.ITrole" id="check2" [checked]="isChecked" name="ITcheck" >
</mat-checkbox>
</div>
您可能必须将更改事件放在for循环中的每个可编辑字段上,如下所示
<div *ngFor="let item of record.roles">
<label for="name">AccountId</label>
<input type="text" class="form-control" [(ngModel)]="item.accountid" name="accountid" (ngModelChange)="updateUser(item) required>
<label>IT Admin</label>
<mat-checkbox [(ngModel)]="item.ITrole" id="check2" [checked]="isChecked" name="ITcheck" (ngModelChange)="updateUser(item)>
</mat-checkbox>
</div>
帐户ID
所有更改都将与带有ngModel的items对象同步。您可以使用ngModelChange或change event,因为input和mat复选框都有chnge事件,并且在值更改时发出此事件
<div *ngFor="let item of record.roles;let i=index" [ngStyle]="{margin:'1rem'}" >
<label for="name">AccountId</label>
<input type="text" class="form-control" [(ngModel)]="item.accountid"
name="accountid" required (change)="changeHandler(item)">
<br>
<label>IT Admin</label>
<mat-checkbox [(ngModel)] = "item.role.itAdmin" (change)="changeHandler(item)" >
</mat-checkbox>
<label>User Portal</label>
<mat-checkbox [(ngModel)] = "item.role.userPortal"(change)="changeHandler(item)" >
</mat-checkbox>
</div>
帐户ID
IT管理员
用户门户
在输入和mat复选框上,演示
(ngModelChange)=“updateUser()”
。复选框的值位于this.item.ITrole
中。如何在类型scripttry(ngModelChange)=“updateUser($event)”
中访问this.item.ITrole。啊,对不起,我错过了for循环。因此(ngModelChange)=“updateUser(i)”
,您可以使用this.record.roles[i].ITrole
访问复选框值。我无法单击第二行生成的复选框,我已用picture@karansys很乐意帮忙
<div *ngFor="let item of record.roles;let i=index" [ngStyle]="{margin:'1rem'}" >
<label for="name">AccountId</label>
<input type="text" class="form-control" [(ngModel)]="item.accountid"
name="accountid" required (change)="changeHandler(item)">
<br>
<label>IT Admin</label>
<mat-checkbox [(ngModel)] = "item.role.itAdmin" (change)="changeHandler(item)" >
</mat-checkbox>
<label>User Portal</label>
<mat-checkbox [(ngModel)] = "item.role.userPortal"(change)="changeHandler(item)" >
</mat-checkbox>
</div>