Angular 2+路由 - 基于用户输入的路由

时间:2018-02-20 18:04:20

标签: angular angular-routing angular-router angular-router-guards

目前在我们的项目中,我们使用Angular的路由器来定义我们的路线。我们有一个向导式的单页应用程序,每个页面上都有下一个和上一个按钮,分别定义了下一个和上一个的路由。这些下一个和前一个按钮是根据来自先前页面的用户输入在每个页面上使用条件逻辑实现的(例如,如果用户从前一页面选择“Option1和Selection1”,则转到第X页,否则转到第Y页)。这大部分时间都有效;但是,随着我们添加更多需要更多条件逻辑的页面,这可能会失控。

有没有办法简化这个过程?我研究了Angular Router防护,虽然如果应用程序在调用路由时没有必要的数据,它们提供了一种将用户重定向到某个页面的方法,但我认为它们不是我们的寻找。

1 个答案:

答案 0 :(得分:0)

如果用户不打算直接访问向导的第2页以上,则没有理由使用Router imo。我将寻找一个主要组件/路由,一个自定义树数据结构,定义其中的用户流,如每个步骤中使用的模型,组件,动态表单,编辑器,api端点等。如果简单ng-switch的情况太多,请在ComponentFactories中投掷:https://angular.io/guide/dynamic-component-loader

IE中。我试图避免喜欢Step1Component等,并且拥有可重用的组件,允许基本上只是json构建不同类型的UI。虽然在较小的情况下step1,step2等等 - 组件也很好。