7

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

这是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)],无论我的服务器发送什么数据,该复选框始终标记为选中。

4

2 回答 2

12

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

<input type="checkbox" 
  [ngModel]="role?.ACTIVE_FLAG === 'Y' ? true : false"        
  (ngModelChange)="toggleRoleActive()" checked>
于 2016-02-07T20:18:50.153 回答
8

我一直在处理这样的复选框

<input #myId type="checkbox" (change)="myProp = myId.checked" />

组件myProp定义了一个属性

这是更多信息 + 演示http://www.syntaxsuccess.com/viewarticle/input-controls-in-angular-2.0

于 2016-02-07T20:16:40.453 回答