Ember.js同一控制器或类似向导的路由的多个视图;如何?

Ember.js同一控制器或类似向导的路由的多个视图;如何?,ember.js,Ember.js,情景: 你有点像个巫师。用户在第一页上完成一些内容,单击next并转到第二页,依此类推,直到到达最后一页。在这里,他单击finish,所有的输入都使用一个余烬模型进行存储和持久化 还有两个问题与此类似: 起初,我尝试过为每个步骤使用route/controller/view,但由于答案基本上是控制器的状态变量,并且在转换时丢失了,很明显,它不能像这样工作 然后我采用了上面链接中描述的方法。一个路由,一个控制器,一个包含大量{if}的模板,这样我只显示当前步骤的字段。我想我可以通过使用parti

情景:

你有点像个巫师。用户在第一页上完成一些内容,单击next并转到第二页,依此类推,直到到达最后一页。在这里,他单击finish,所有的输入都使用一个余烬模型进行存储和持久化

还有两个问题与此类似:

起初,我尝试过为每个步骤使用route/controller/view,但由于答案基本上是控制器的状态变量,并且在转换时丢失了,很明显,它不能像这样工作

然后我采用了上面链接中描述的方法。一个路由,一个控制器,一个包含大量{if}的模板,这样我只显示当前步骤的字段。我想我可以通过使用partials来改进这一点,因此每个步骤都有自己的模板


问题是:这是唯一/最好的方法吗?有人想出了更好的方法来实现这样的流程吗

一种可能的方法是使用,以便您可以在单个向导控制器中管理每个步骤的状态。

一种可能的方法是使用,以便您可以在单个向导控制器中管理每个步骤的状态。

如果您将每个向导页面作为组件,然后将模型作为模板参数传递对于每个组件,都有一个非常好的工作流。URL是稳定的,不会为了传递状态而不断地在末端添加垃圾;无论用户何时进入路径(例如手动输入URL,或者更重要的是,完成向导,然后点击浏览器的“后退”按钮),都可以轻松地让用户进入第一步;您可以在向导的每个页面上执行验证


查看我的较长答案

如果您将每个向导页面设置为一个组件,然后将模型作为模板参数传递给每个组件,您将获得一个非常好的工作流。URL是稳定的,不会为了传递状态而不断地在末端添加垃圾;无论用户何时进入路径(例如手动输入URL,或者更重要的是,完成向导,然后点击浏览器的“后退”按钮),都可以轻松地让用户进入第一步;您可以在向导的每个页面上执行验证

看看我的长答案