我有一个HomeComponent
,如下所示
ngOnInit() {
this.loadAll();
this.registerChangeInItems();
}
loadAll()
通过HomeService查询数据库(我不会在此处发布实现)来加载所有项目。
在ItemDetailComponent
:
import {Location} from '@angular/common';
onGoBack() {
this.location.back();
}
第一次加载HomeComponent
时,它会查询数据库,这没关系。我现在采取的行动是:
1) HomePage -> ItemDetailPage
2) ItemDetailPage -> HomePage
在action2中,它返回主页但重新加载所有内容(再次查询数据库)。有谁知道我怎么能避免这个?
答案 0 :(得分:0)
如果您不希望重新加载所有内容,则需要将this.loadAll()
函数放在除ngOnInit
函数之外的其他位置(每次创建组件时都会调用该函数)。然而,这可能没有多大意义。
可能有效的另一种解决方案是调用ItemDetailPage
组件内的HomePage
组件,并根据ItemDetailPage
的条件仅显示*ngIf
组件
在HomePage.component.html中:
<div *ngIf="some condition">
<ItemDetailComponent></ItemDetailComponent>
</div>
这样,HomePage
组件永远不会结束并重新创建。