我使用以下共享服务将组件A中的一些数据(在单击事件上)传递给B.
@Injectable()
export class HostelService{
private book = new BehaviorSubject<String>("");
currentBook = this.book.asObservable();
getBookDetails(book){
this.book.next(book);
}
}
但是,正如预期的那样,在页面刷新时,组件B上传递的数据会丢失。我的问题是,如何在组件A的下一个点击事件之前保持它。谢谢。
编辑:尝试localStorage
在B组ngOnInit()
中,我尝试了以下内容:
ngOnInit() {
this.bookService.currentbook.subscribe(book => {
this.book = book;
localStorage.setItem("book", JSON.stringify(this.book));
this.book = JSON.parse(localStorage.getItem("book"));
});
仍然没有坚持。
编辑2:
好的,所以我完全摆脱了服务并将组件A中的对象直接存储在本地存储中(在onclick内部),并在组件B中使用getItem
。现在似乎工作正常。但是,甚至使用共享服务的重点是什么呢?我想在这种情况下没有必要吗?
答案 0 :(得分:0)
您可以使用localStoage来保存数据,因此刷新后不会丢失:
localStorage.setItem('book', book);
然后从那里再次获取:
localStorage.getItem('book');