1
부품의 부모에서의 함수 내에서 이미 터를 통과하는 경우 (템플릿) 방출 할 수있는 방법I는 각도 2
<CHILD></CHILD>
<overlayer *ngIf="showPopup" (evTogglePopup)="onShowPopup($event)"></overlayer>
부품 CHILD (@Component를)
@Output() evTogglePopup = new EventEmitter();
...
this.inputUt.ajaxCheckExistingEmail(email, this.evTogglePopup);
MyInputUtility의 연료 소모량 (공급자 @Injectable 아동으로 수입 및 사용이) :
ajaxCheckExistingEmail(email, evEmitter:EventEmitter<any>){
if (email.valid){
return this.http.post(
GLOBAL_CONST.apiPath + "/user/user/api-check-user-email",
'email=' + email.value,
{headers: this.headers}
).map(response => response.json())
.subscribe(val => {
console.log(val);
if(val.emailExists){
evEmitter.emit(true);
}
});
}
}
이 "솔루션"작동하지 않습니다, 나는 내가 궁금 evEmitter가 복사에 의해 ajaxCheckExistingEmail 함수에 전달되기 때문입니다. 자신
문제로
Sosterd는 "상지"다른 선택 양식이라고했다 그 아이 (선택)에 의해 지적, 나는 그것뿐만 아니라 일을 한 것이라고 생각 하나.
나는 다음과 같이 변경되어 지금은 작동합니다@Output()
에서 <CHILD (evTogglePopup)="onShowPopup($event)"></CHILD>
<overlayer *ngIf="showPopup"></overlayer>
'evTogglePopup'은 객체이며 객체는 복사로 전달되지 않고 참조로 전달됩니다. 작동하지 않는 것은 무엇입니까? 어떻게 작동하지 않습니까? –
이벤트 리스너가 포함 된 구성 요소에서 "evEmitter.emit (true)"이후에 이벤트가 방출되지 않았 음 – Donovant
질문 업데이트 – Donovant