2017-06-27 87 views
1

我必須通過一個主頁爲HomeComponent下面返回上一頁時是否可以避免重新加載?

ngOnInit() { 
    this.loadAll(); 
    this.registerChangeInItems(); 
} 

loadAll()查詢數據庫(我不會在這裏發表的實現)加載所有項目。

ItemDetailComponent

import {Location} from '@angular/common'; 

onGoBack() { 
    this.location.back(); 
} 

第一次HomeComponent被加載時,它會查詢數據庫,這是好的。現在我做的動作是:

1) HomePage -> ItemDetailPage 
2) ItemDetailPage -> HomePage 

在1動作,它可以追溯到主頁,但(再次查詢數據庫)重新加載一切。有誰知道我該如何避免這種情況?

+0

當您調用this.location.back()時,URL應該已被更改。你需要能夠管理你的組件狀態來決定它是否應該調用loadAll()或不。 – wannadream

回答

0

如果您不希望重新加載所有內容,則需要將this.loadAll()函數放置在除ngOnInit函數之外的其他位置(每次創建組件時都調用該函數)。然而,這可能沒有多大意義。

另一種解決方案,其可以工作是調用HomePage部件的內部的ItemDetailPage分量和只顯示ItemDetailPage部件根據的*ngIf

條件在HomePage.component.html:

<div *ngIf="some condition"> 
    <ItemDetailComponent></ItemDetailComponent> 
</div> 

這樣HomePage組件永遠不會結束並重新創建。

相關問題