родительском компоненте (шаблон):Как испускают событие, проходящий излучатель внутри функции в угловых 2
<CHILD></CHILD>
<overlayer *ngIf="showPopup" (evTogglePopup)="onShowPopup($event)"></overlayer>
нижестоящего компонента (@Component):
@Output() evTogglePopup = new EventEmitter();
...
this.inputUt.ajaxCheckExistingEmail(email, this.evTogglePopup);
Funtion из 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);
}
});
}
}
Это «решение» не работает, и мне было интересно, я f это потому, что evEmitter передается копией функции ajaxCheckExistingEmail.
Sosterd сам
Проблема в том, что «верхний слой» является другой формой селектор, который один указываемого РЕБЕНКА (селектор), и я думал, что это сработало бы, как хорошо.
я изменил, как это ниже, и теперь он работает:
<CHILD (evTogglePopup)="onShowPopup($event)"></CHILD>
<overlayer *ngIf="showPopup"></overlayer>
'evTogglePopup' - это объект, и объект не передается копией, а ссылкой. Что не работает? Как это не работает? –
Просто событие не выдавало после/с "evEmitter.emit (true)" в компоненте, который содержит прослушиватель событий – Donovant
Я обновил вопрос – Donovant