Ich versuche, Daten von der übergeordneten Komponente an die untergeordnete Komponente zu emittieren, aber ich habe ein Problem mit meiner ng2-Smart-Tabelle, die im Weg ist ausstrahlend. In meiner Elternkomponente nutze ich die ng2-smart-table, die userRowSelect (eine Standardfunktion) verwendet, wenn ich eine Zeile in der Tabelle auswähle, bekomme ich alle Daten aus dieser Zeile. Die Daten aus dieser Zeile, die ich an meine untergeordnete Komponente übergeben möchte. Ich habe versucht, einen geteilten Service zu nutzen, zu senden und zu senden, keiner von ihnen hat bisher funktioniert. Unten sind Codeschnipsel der zwei Komponenten. Irgendwelche Vorschläge, was zu tun ist?Angular4 Übergabe von Daten von Eltern zu Kind, emittieren funktioniert nicht
Eltern html:
<ng2-smart-table [settings]="settings" [source]="data" (userRowSelect)="onRowSelect($event)"></ng2-smart-table>
Geordnete Komponente:
@Output() passDataToViewPdf: EventEmitter<any> = new EventEmitter();
ngOnInit() {
this.reportService.getReportsTemplates().subscribe(response => this.data = response);
}
onRowSelect(event): void {
this.passDataToViewPdf.next(event);
this.router.navigate(['/report-view-pdf', localStorage.getItem('siteId')]);
}
Kinder Komponente:
@Input() template;
public handleEvent(event) {
// get data from passDataToViewPdf emitter
}
ngOnInit() { this.template = // get data from handleEvent}
wird eine Ausgabe zu emittieren, von einem Kind verwendet, ein Ereignis, das von empfangen werden können das Elternteil. Es scheint, dass Sie versuchen, von einem Elternteil ein Ereignis an das Kind zu senden. Das ist einfach nicht so kantig. Eingaben werden zum Übergeben von Daten von Eltern zu Kind verwendet. –
@JBNizet danke für die Klärung! – viddrawings
https://stackoverflow.com/questions/35884451/angular-2-sibling-component-communication und https://stackoverflow.com/questions/31026886/how-do-i-share-data-between-components-in -angular-2 und https://stackoverflow.com/questions/41451375/passing-data-into-router-outlet-child-components-angular-2 – Alex