Угловой 6 пользовательских элементов вывода EventEmitter - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть элемент с источником выходного события, и я не могу понять, как перехватить событие.Я получаю эту ошибку:

«Тип» () => void »нельзя назначить типу« EventEmitter »."

это вывод

  @Output() closeMarkers = new EventEmitter<string>();

И вот как я добавляю элемент к компоненту:

              createPopupComponentWithMessage(latitude, longitude, city) {
                    const popupEl: NgElement & WithProperties<MarkerNewComponent> = document.createElement('new-marker') as any;
                      //Set MarkerNewComponent input vars
                      popupEl.city=city;
                      popupEl.latitude=latitude;
                      popupEl.longitude=longitude;
                      popupEl.closeMarkers = this.testOutput ;
                      popupEl.addEventListener('closed', () =>  document.body.removeChild(popupEl));

                      // Add to the DOM
                      document.body.appendChild(popupEl);
                    return popupEl;
                  }

        testOutput (){
               console.log('test output');
             }

1 Ответ

0 голосов
/ 27 ноября 2018

В родительском компоненте у вас должен быть тег для дочернего компонента

, например

PARENT.COMPONENT.HTML

<div> myInformation</div>
<myChild></myChild>

, чтобы перехватить событие изваш ребенок, вы должны сделать это так

<div> myInformation</div>
<myChild (closeMarkers)="myParentFunctionToHandleIt($event)" ></myChild>

вот документация: https://angular.io/api/core/EventEmitter

РЕДАКТИРОВАТЬ: в родительском компоненте вы можете указать тип события

PARENT.COMPONENT.TS

myParentFunctionToHandleIt(value: MyCustomType) {
//your way to handle your event
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...