emmiter выходного события выдает ошибку в Angular 5 - PullRequest
0 голосов
/ 08 июня 2018

У меня странная проблема, у меня есть проект на Angular 5.2.11 с родительским и дочерним компонентами.Все работало нормально, пока я не добавил декоратор @Output в дочерний компонент, чтобы передать ответ родительскому компоненту.Это дочерний TS:

questionCorrectAnswer:number;

nextQuestion(){
   this.nextQuestionEvent.emit({});
}

Это дочерний HTML

<a (click)="nextQuestion()" class="btn btn-primary">Go to next question</a>

В родительском HTML у меня есть это:

<app-question-displayer (nextQuestionEvent)="nextQuestion($event)"></app-question-displayer>

И, наконец,Файл TS родительского файла имеет следующий вид:

setQuestion(idx:number){
   this.currentQuestion=this.exam.questions[idx];
   this.questionDisplay.setupQuestion(this.currentQuestion);
}

nextQuestion(event){
   this.currentQuestionIndex++;
   this.setQuestion(  this.currentQuestionIndex);
}

И как только страница загружается, он перенаправляет меня на домашнюю страницу, и в консоли Chrome я вижу эту ошибку:

enter image description here

Как видите, это не очень описательная ошибка, так как я ее погуглил, но обнаружил другие ошибки, которые не имеют ничего общего с моей.

Есть что-тоЛюбопытно, если я удалю слушатель события (nextQuestionEvent) = "nextQuestion ($ event)" в теге app-question-displayer, приложение не завершится сбоем.

Как вы думаете, что это может быть ??

Заранее спасибо!

Редактировать:

Это определение вывода:

  @Output() nextQuestionEvent:EventEmitter<any>;

1 Ответ

0 голосов
/ 08 июня 2018

Вы не создали экземпляр вашего EventEmitter.

Используйте для этого следующий код:

@Output() nextQuestionEvent:EventEmitter<any> = new EventEmitter();
...