目录
事件未在 Angular2 中的复选框内触发
angularangular2-templateangular2-forms
浏览量:20
编辑于:2023-04-12 21:45:10

我已经尝试了我能想到的一切来在复选框更改状态时触发事件,但我似乎无法让它工作。

这是 html

<div *ngIf="role?.ACTIVE_FLAG === 'Y'">
   <div class="label"> Active Record </div>
      <input type="checkbox" (click)="toggleRoleActive()" checked>
</div>
<div *ngIf="role?.ACTIVE_FLAG === 'N'">
   <div class="label"> Active Record </div>
      <input type="checkbox" (click)="toggleRoleActive()">
</div>

这是 toggleRoleActive()
编辑:

toggleRoleActive(){
    if(this.role_submit.ACTIVE_FLAG === 'Y'){
        this.role_submit.ACTIVE_FLAG = 'N';
    }else {
        this.role_submit.ACTIVE_FLAG = 'Y';
    }
}

我面临的挑战之一是,当我从服务器获取数据时,需要检查或不检查按钮。但是,如果他们想停用或重新激活该角色,我希望它响应该复选框。

我已经尝试使用更简单的解决方案,但唯一触发任何事件的是,但这样做我最终会得到/而不是/。此外,如果我使用,无论我的服务器发送什么数据,该复选框始终标记为选中。[(ngModel)]``(change)``[(ngModel)]``true``false``'Y'``'N'``[(ngModel)]

解决方案:

您可以分别处理赋值和更改事件处理程序:

<input type="checkbox" 
  [ngModel]="role?.ACTIVE_FLAG === 'Y' ? true : false"        
  (ngModelChange)="toggleRoleActive()" checked>