javascript - Kan inte fånga händelse som skickas från barnkomponent i Angular 4


Jag ber om ursäkt för min nybörjarfråga, jag försöker sända ett event från ett barnkomponent till ett föräldrakomponent med en @Output EventEmitter. Jag kan inte fånga eventet i mitt föräldrakomponent.

Underkomponent

@Component({
  selector: 'app-new-attachment',
  templateUrl: './new-attachment.component.html',
  styleUrls: ['./new-attachment.component.css']
})
class NewAttachmentComponent {
  @Input('attachment') attachment: any;
  @Output() doneEditingAttachment:EventEmitter<boolean> = new EventEmitter<boolean>();

  submit() {
    console.log('done editing child');
    this.doneEditingAttachment.emit(true);
  }
}

Föräldrakomponent

@Component({
  selector: 'app-new-article',
  templateUrl: './new-article.component.html',
  styleUrls: ['./new-article.component.css']
})
class NewArticleComponent {
   newAttachment: any = {};
   doneEditingAttachment($event) {
     console.log('done editing parent ', $event);
   }
}

Jag förväntade mig att ha

klar med att redigera barnet

Och en

klar med att redigera förälder

Men jag blev bara klar med att redigera barnet

Svar #1

Du behöver faktiskt ha en bindning till barnets händelse med (eventName)-notationen:

<app-new-attachment [attachment]="newAttachment" (doneEditingAttachment)="doneEditingAttachment($event)"></app-new-attachment>

Svar #2

Baserat på kommentaren behöver du detta,

<app-new-attachment [attachment]="newAttachment" (doneEditingAttachment)="submit()"></app-new-attachment>