我试图按服务将数据从表组件传递到打印组件,但是我无法按以下方式访问打印组件中的共享数据。
数据如下:
[{barCode: "31568308949"
checked: true
index: 0
itemDesc: "ASHTON-250"
permPrice: 19.99
posId: "31568308949"
profit: "4"
sellPrice: "20"
sku: "77610"
state: "HR"
store: "8501"}]
在使用中,将主题设置如下。
printedData是数据。
private testDataToPrintDoc = new Subject<any>();
getTestDataToPrint(printedData) {
this.testDataToPrintDoc.next(printedData);
}
setTestDataToPrint(): Observable<any> {
return this.testDataToPrintDoc.asObservable();
}
在打印组件中订阅数据。
this.loglistingService.setTestDataToPrint().subscribe(data => {
console.log("in the print document", data);
});
请告诉我如何共享数据。预先感谢。
答案 0 :(得分:1)
我刚刚将Subject更改为BehaviourSubject,并且在首次订阅时获得了最新的价值。该主题的语义是表示随时间变化的值。
我更改过的东西
在LogListingService中:
private testDataToPrintDoc = new BehaviorSubject<any>(null);
setTestDataToPrint(): Observable<any> {
return this.testDataToPrintDoc;
}
在这里,我为您提供一个示例https://stackblitz.com/edit/angular-ahwwhp。
希望它对您有帮助。