如果选中复选框,设置为1?

时间:2017-07-20 11:33:06

标签: angular

我有多个复选框。我想要的是当用户检查其中一些调用方法并在该方法中执行某些操作时。任何建议我怎么能这样做?

我试过了:

<input type="checkbox" [ngModel]="checked == 1 ? true : checked == 0 ? false : null" (ngModelChange)="checked = $event ? 1 : 0">

   ngOnChanges(){
        console.log(this.checked);
    }

但是当我选中或取消选中时,onChanges从不打电话。

我也试过这个:

 <input type="checkbox" [ngModel]="checked == 1 ? true : checked == 0 ? false : null" (ngModelChange)="setValue(checked)">

但也没有工作。

1 个答案:

答案 0 :(得分:0)

只有在更改检测检测到父组件发生更改并更新已更改的值绑定到的子组件的ngOnChanges()时,才会调用@Input()(在子组件上)。

您的示例与ngOnChanges()

无关

你能做的是

(ngModelChange)="checked = $event ? 1 : 0; callSomeMethod()"

(ngModelChange)="callSomeMethod($event)"
callSomeMethod(e) {
  this.checked = $event ? 1 : 0
}