【发布时间】:2018-05-03 13:44:41
【问题描述】:
我正在尝试将数据从父组件发送到子组件,但是我的 ng2-smart-table 存在发送方式的问题。在我的父组件中,我使用了使用 userRowSelect(标准函数)的 ng2-smart-table,当我在表中选择一行时,我会从该行获取所有数据。我想传递给我的子组件的那一行的数据。我尝试使用共享服务、输入和发射,到目前为止它们都没有工作。下面是这两个组件的代码 sn-ps。有什么建议吗?
父 html:
<ng2-smart-table [settings]="settings" [source]="data" (userRowSelect)="onRowSelect($event)"></ng2-smart-table>
父组件:
@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')]);
}
子组件:
@Input() template;
public handleEvent(event) {
// get data from passDataToViewPdf emitter
}
ngOnInit() { this.template = // get data from handleEvent}
【问题讨论】:
-
输出用于从子级发出可以被父级接收的事件。似乎您正试图从父母那里向孩子发出一个事件。这根本不是角度的工作方式。输入用于将数据从父级传递给子级。
-
@JBNizet 感谢您澄清这一点!
标签: angular input eventemitter emit ng2-smart-table