【问题标题】:How to prevent reloading a component while clicking back in Angular6 without using Service?如何防止在不使用服务的情况下在 Angular6 中单击返回时重新加载组件?
【发布时间】:2019-05-17 16:43:27
【问题描述】:

让我们考虑 2 个角度组件 componentAcomponentB,我有一个表单,其中在 componentA 中输入了一些值,并带有一个按钮可以导航到componentB,在导航到 componentB 后,我有一个返回按钮可以返回到 componentA,现在单击返回按钮后,它会导航到 componentA 但是重新加载了值(刷新了整个组件),如何防止在单击返回时重新加载组件,请帮帮我。

我正在使用routerLink='./componentA' 进行路由返回

【问题讨论】:

    标签: angular typescript angular-ui-router


    【解决方案1】:

    您必须临时存储表单的控件值。您可以创建一个服务并将该表单的所有数据保存在该服务属性中。

    如果您在刷新页面后想要该数据,请将其存储在浏览器中,例如在本地存储、会话存储或 cookie 中(取决于您的要求)。

    并通过这些存储的值预先填充您的 ComponentA 表单。

    【讨论】:

    • 不使用服务有没有其他方法,因为我正在寻找不调用服务的方法
    • 不,我不这么认为...服务的状态不会自动重置或重新初始化,因为它们是单例的。但是每当调用这些组件时,组件状态都会重置。
    • 感谢@Praveen Gupta 的建议,我会努力解决的
    • @sivaIT 你的问题有解决方案吗?如果是,请与我分享,我需要它。
    【解决方案2】:

    尝试使用定位服务。从import {Location} from '@angular/common'; 导入 然后将其注入 componentB

    constructor(private _location: Location) 
      {}
    
      onClickBack() {
        this._location.back();
      }
    

    【讨论】:

    • 组件仍在刷新。
    • 还没有接近回答这个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-06-02
    • 2022-11-17
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多