【发布时间】:2017-08-17 11:38:36
【问题描述】:
我试图在路由时在页面之间传递一个对象(数组)。为此,我完全按照this answer 所说的做了,但这对我不起作用。
服务
@Injectable ()
export class ReportService extends HttpService {
public selectedReports: any[] = [];
public setSelectedReports (id: string, value: any) {
this.selectedReports[id] = value;
}
public removeSelectedReports (id: string) {
delete this.selectedReports[id];
}
}
家长
import { ReportService } from './';
@Component({
providers: [ReportService]
})
export class ReportComponent {
constructor (private reportService: ReportService) {}
}
孩子 1
import { ReportService } from '../';
@Component({
template: '<a [routerLink]="['stats']">Stats</a>'
})
export class ReportHomeComponent {
constructor (private reportService: ReportService) {
reportService.setSelectedReports (1, 'hello')
}
}
孩子 2
import { ReportService } from '../';
@Component({
})
export class ReportStatsComponent {
constructor (private reportService: ReportService) {
console.log(reportService.selectedReports)
}
}
如果我点击第一个孩子中的a,我会被重定向到第二个孩子。在换页之前,selectedReports[] 被填满。换页后,它是空的。我错过了什么吗?
我知道以前有人问过这个问题,但我还是决定在问题顶部链接中给出的答案的评论部分提出请求。
【问题讨论】:
标签: angular oop typescript routes