【问题标题】:Angular How to trigger change event of checkbox after model value change?Angular如何在模型值更改后触发复选框的更改事件?
【发布时间】:2017-12-21 19:54:28
【问题描述】:

我想在选中复选框一时触发复选框二的更改事件。 到目前为止,在检查第一个时检查第二个。但我无法让第二个触发其更改事件 这是我的代码 这是我的模板代码

<input [ngModel]="firstOne" (ngModelChange)="someEvent($event)" type="checkbox">
<input [ngModel]="secondOne" (ngModelChange)="secondEvent($event)" type="checkbox">

控制器代码

this.firstOne:boolean=false;
this.secondOne:boolean=false;

constructor(){}
someEvent(event){
  this.secondOne = true;
}

secondEvent(event){
 alert("second is triggered")
}

感谢您的任何建议。 我有带有 itemId 和 parentId 的复选框树。在初始化时,我使用的 api 提供了最后一个孩子的 itemId。所以我的想法是使用 itemId 检查最后一个子复选框,然后触发事件,该事件将使用其 parentId 检查其父母,从而导致链检查。

【问题讨论】:

  • 模型更新时不应触发更改事件。您可以从someEvent() 调用secondEvent(),反之亦然,以获得相同的效果。您需要传递一些参数来防止无限循环。
  • @GünterZöchbauer 有什么办法可以做到吗?从复选框?我在 someEvent 中没有可用的参数。
  • 您只需要在从另一个调用一个值时传递一个值,而不是从事件绑定调用它时。这样可以区分是否需要调用其他方法。如果这对您没有帮助,请提供更多信息您实际尝试解决的问题(而不是触发事件)
  • @NabinKunwar,你为什么需要那个活动?
  • 我有 3 个级别的复选框,需要根据 dom 传递父 ID/子 ID,女巫会更新其他复选框。

标签: angular checkbox angular2-ngmodel angular-ngmodelchange


【解决方案1】:

如果您需要更新检查状态,请使用

[checked]="secondOne"

您不能从另一个复选框调用事件。您只能从其他方法调用方法

constructor(){}
someEvent(event){
  this.secondOne = true;
  this.secondEvent();
}

secondEvent(event?){
 alert("second is triggered")
}

【讨论】:

    猜你喜欢
    • 2018-03-20
    • 2013-08-03
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多