返回上一页时是否可以避免重新加载?

时间:2017-06-27 21:36:02

标签: angular components

我有一个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中,它返回主页但重新加载所有内容(再次查询数据库)。有谁知道我怎么能避免这个?

1 个答案:

答案 0 :(得分:0)

如果您不希望重新加载所有内容,则需要将this.loadAll()函数放在除ngOnInit函数之外的其他位置(每次创建组件时都会调用该函数)。然而,这可能没有多大意义。

可能有效的另一种解决方案是调用ItemDetailPage组件内的HomePage组件,并根据ItemDetailPage的条件仅显示*ngIf组件

在HomePage.component.html中:

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

这样,HomePage组件永远不会结束并重新创建。