Проблема Angular 7 с прослушиванием события на родительском компоненте - PullRequest
0 голосов
/ 17 июня 2019

Я новичок в angular, и я борюсь с получением событий в родительском компоненте. Я знаю, что эта проблема обсуждалась ранее, но каким-то образом ни один из советов или руководств, которые я прочитал, не помог бы мне понять, что я делаю неправильно ...

В моем дочернем component.ts я делаю что-то вроде этого:

import { Component, EventEmitter, OnInit, Output } from '@angular/core'

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.css'],
  template: `<button class='btn btn-primary' (click)="nameChanged()">Click me</button> `
})
export class TestComponent implements OnInit {

    @Output() onTestEvent = new EventEmitter<string>()
    public text: string = "blah";

  constructor() { }

  ngOnInit() {
  }

  nameChanged() {
    console.log('Sending test event!');
    this.onTestEvent.emit(this.text)
  }
}

В html-файле родительского компонента я делаю что-то вроде этого:

  <app-test>
    (onTestEvent)="handleTestEvent($event)"
  </app-test>

В моем файле ts родительского компонента я делаю что-то вроде этого:

  handleTestEvent(text: string) {
    console.log('handling test event....');
  }

Я вижу, что функция nameChanged вызывается, когда я нажимаю кнопку, но я не получаю событие в родительском компоненте по какой-то причине, которая мне не подходит ...

1 Ответ

1 голос
/ 17 июня 2019

должен идти внутрь тега ...

<app-test (onTestEvent)="handleTestEvent($event)">

</app-test>
...