通过表单向导导航时保留用户输入数据(表单)的最佳方法是什么?

What is the best way to go for retaining user input data (form) when navigating thru a form wizard?

我正在使用 Angular2:

我正在基于以下内容开发表单向导:

1) 每个向导步骤(屏幕)都与其自己的组件相关联,呈现一个单独的子表单 () 附加到 ngFormControl 绑定。

2) router/routing 用于通过表格向前移动

3) 用户输入数据在每个表单上单独验证 [*]

4) 在用户确认(在向导的最后一步)之后,用户输入的数据将被持久化,即发送到 API。

[*] 将来我可能会有一些跨表单的验证规则,它们跨越多个页面,即表单。目前,这超出了我的问题范围

我希望用户通过向导步骤来回导航将保留他的用户输入数据。 进入 Angular2 的最佳方式是什么?

(到目前为止,我已经在网上进行了搜索,但没有成功找到有关我的问题(特定于 angular2)的建议。)

最好的方法是使用向导中涉及的所有组件通用的共享数据服务。

export class SharedDataService {
  wizardData: any;
}

为此,您可以在使用所有这些组件的父组件的提供程序中进行设置:

@Component({
  (...)
  providers: [ SharedDataService ] // <----
}

您也可以在引导应用程序时指定它,但它将被所有应用程序共享:

bootstrap(AppComponent, [ SharedDataService ]);

有关详细信息,请参阅此文档: