首页 > 解决方案 > 在角度 8 中更改复选框检查值时触发 ng 更改

问题描述

更改了值但未触发更改事件。我想在 ischecked 更改时触发更改

在 HTML 中

 <input class="inputStyle" type="checkbox" [checked]="isChecked"  id="actA" tabindex="0" (change)="onAct($event)">

有另一个功能(在 ts 中)

onChangeoption(lang) {
            this.isChecked = true;     `enter code here`   
 }

标签: htmlangulartypescript

解决方案


您要做的是change在您首先以编程方式更改输入的值之后触发一个事件,这将不起作用。

我可以建议两种方法:

方法 1: 根据您在这些片段中显示的内容,onActonChangeoption. 如果您真的不需要更改事件对象,您可以onAct在更改 的值后立即调用isChecked

方法 2: 如果您需要更改事件对象,请创建input元素的引用并以编程方式调度change事件

在您的 TypeScript 代码中:

  @ViewChild('myCheckbox') myCheckbox;

  onChangeoption() {
    this.isChecked = true; `enter code here`
    this.myCheckbox.nativeElement.dispatchEvent(new Event('change'));
  }

并更新您的模板:

<input #myCheckbox class="inputStyle" type="checkbox" [checked]="isChecked"  
 id="actA" tabindex="0" (change)="onAct($event)">

推荐阅读