2017-03-02 5 views
1

나는 angular2와 반응하는 형태를가집니다. 두 개의 텍스트 입력 요소가 있고 각 요소에는 고유 한 valueChange 함수가 있습니다. 비 emtpy 값이있는 경우 다른 입력은 비활성화되고 그렇지 않으면 활성화되며 다른 입력에서 변경 이벤트를 트리거하여 무한 루프를 생성합니다. 어떻게 해결할 수 있습니까?입력 Y를 비활성화 할 때 무한 루프가 발생하고 입력 Y가 값을 가져오고 각도 2의 반대가 발생하면

코드는 다음과 같다 : 따라서 이미 활성화 된 요소를 사용하거나 이미 장애인 요소를 사용하지 않도록 노력하지, 비활성화하거나 enbabling하기 전에 각 요소의 상태를 확인하고,이를 해결의

this.myForm.get('inputX').valueChages.subscribe(val => { 
if(val && val.trim().length > 0) { 
    this.myForm.get('inputY').disable(); // this triggers a change in inputY 
} else { 
    this.myForm.get('inputY').enable(); // this triggers a change in inputY 
} 
}) 
this.myForm.get('inputY').valueChages.subscribe(val => { 
if(val && val.trim().length > 0) { 
    this.myForm.get('inputX').disable(); // this triggers a change in inputX 
} else { 
    this.myForm.get('inputX').enable(); // this triggers a change in inputX 
} 
}) 

내 방법. 더 간편한 방법이 있나요?

답변

2

당신이 시도 할 수 emitEvent: false

this.myForm.get('inputY').disable({emitEvent: false});