javascript - 如何在 Angular 的延迟加载模块中保持表单状态?

标签 javascript angular typescript lazy-loading

我在 Angular 7 应用程序中构建了 2 条路线,

{
    path: 'create',
    component: CreateComponent
},
{
    path: 'view',
    component: ViewComponent
}

它们都是延迟加载,在CreateComponent中有一个表单,其中有许多表单字段ViewComponent 也会发生同样的事情。

问题是,每当我从 /create 路由转到 /view 路由或 ViewComponent 时,或者 CreateComponent,前一个组件(即 ViewComponent)内的所有表单字段都返回到初始状态(我通过再次返回 /create 路由来检查它),换句话说,表单字段会自动重置,如果我从 /view 路由转到 /create 路由,也会发生同样的事情,中的所有表单字段>/view 由 Angular 自动重置。

那么,如何解决这个问题呢?如果我更改或转到其他路线,我希望所有表单字段保持其先前的值(即使表单尚未提交)。

谢谢

最佳答案

这里要注意的主要事情是,当您导航到被破坏的 Angular 组件然后导航回来时,它会再次重新创建。有多种方法可以维护组件数据。

  1. Use services存储数据并在组件再次初始化时重用 -
  2. 将数据存储在本地存储中,并在组件再次初始化时重用
  3. RouteReuseStrategy 。这提供了重用 Angular 组件的机制。请注意,这不适用于同级路由器 socket 。可能是,我无法让它适用于兄弟路线。你可以引用我之前关于实现RouteReUseStrategy的回答

关于javascript - 如何在 Angular 的延迟加载模块中保持表单状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861314/

相关文章:

angular - Chart.js 在放大 8 Angular 之前不会呈现

javascript - 异常 : Cannot read property 'addInstrumentToStage' of undefined

html - Angular 4 - 上传 CSV

typescript - 如何动态更改 tsconfig compilerOptions.paths?

javascript - 使用javascript从uiwebview的网页获取值

javascript - 创建一个具有特定原型(prototype)的空对象

javascript - 如何仅显示我的 slider 主页?

typescript :在单独的文件中定义类及其方法

reactjs - Redux 是编写 reducer 的更好方法吗?

javascript - 3D-Highchart 动态系列 添加问题