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

时间:2016-05-25 09:27:48

标签: forms navigation angular router wizard

我正在使用Angular2:

我正在根据以下内容编写表单向导:

1)每个wizardstep(屏幕)与其自己的Component相关联,呈现与ngFormControl绑定相关联的单独子表单()。

2)路由器/路由应用于通过表单

前进

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

4)用户输入数据将被保留,即在用户确认后(在上一个向导步骤中)发送到API。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

export class SharedDataService {
  wizardData: any;
}

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

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

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

bootstrap(AppComponent, [ SharedDataService ]);

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