2017-07-17 79 views
0

我想检查复选框一中触发复选框二的更改事件。 到目前为止,在第一次检查时检查第二个。但我不能让第二个火其变动事件 这里是我的代码 这是我的模板代码Angular如何在模型值更改后触发复选框的更改事件?

<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检查其父母,从而导致链式检查。

+1

它不应该在模型更新时触发更改事件。你可以从'someEvent()'调用'secondEvent()',反之亦然,以获得相同的效果。您需要传递一些参数来防止无限循环。 –

+0

@GünterZöchbauer有什么办法可以做到这一点?从复选框? someEvent中没有可用的参数。 –

+0

当您从另一个对象中调用某个值时,您只需传递一个值,而不是从事件绑定中调用该值时。这样您就可以区分是否需要调用其他方法。如果这对你没有帮助,请提供更多信息你实际上试图解决什么问题(而不是触发事件) –

回答

0

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

[checked]="secondOne" 

您不能从另一个复选框呼叫事件。您只能从另一种方法调用方法

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

secondEvent(event?){ 
alert("second is triggered") 
} 
相关问题