2017-07-17 128 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") 
} 
相關問題