我使用以下共享服務將組件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內),並簡單地用getItem
在組件B.它似乎是工作現在好了。但是,即使使用共享服務又有什麼意義?我猜這在這種情況下沒有必要?
使用本地存儲來保存數據。 – alexKhymenko
您必須將其存儲在應用程序(本地/會話存儲)外部,並在應用程序重新啓動時檢索它。 – jonrsharpe
我已經更新了原來的帖子與我所做的。還有一個問題。 – ZeroDarkThirty