我在 Angular 7 应用程序中构建了 2 条路线,
{
path: 'create',
component: CreateComponent
},
{
path: 'view',
component: ViewComponent
}
它们都是延迟加载,在CreateComponent
中有一个表单,其中有许多表单字段, ViewComponent
也会发生同样的事情。
问题是,每当我从 /create
路由转到 /view
路由或 ViewComponent
时,或者 CreateComponent
,前一个组件(即 ViewComponent
)内的所有表单字段都返回到初始状态(我通过再次返回 /create
路由来检查它),换句话说,表单字段会自动重置,如果我从 /view
路由转到 /create
路由,也会发生同样的事情,中的所有表单字段>/view
由 Angular 自动重置。
那么,如何解决这个问题呢?如果我更改或转到其他路线,我希望所有表单字段保持其先前的值(即使表单尚未提交)。
谢谢
最佳答案
这里要注意的主要事情是,当您导航到被破坏的 Angular 组件然后导航回来时,它会再次重新创建。有多种方法可以维护组件数据。
- Use services存储数据并在组件再次初始化时重用 -
- 将数据存储在本地存储中,并在组件再次初始化时重用
- RouteReuseStrategy 。这提供了重用 Angular 组件的机制。请注意,这不适用于同级路由器 socket 。可能是,我无法让它适用于兄弟路线。你可以引用我之前关于实现RouteReUseStrategy的回答
关于javascript - 如何在 Angular 的延迟加载模块中保持表单状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861314/