Ember.js为同一控制器或向导的多个视图,如路线;如何?

时间:2014-10-17 11:41:34

标签: ember.js

场景:

你有像巫师这样的东西。用户在第一页上完成某些操作,单击下一步并转到第二页,依此类推,直到他到达最后一页。在这里,他点击完成并使用ember模型存储和保存他的所有输入。

还有另外两个与此类似的问题: Ember.js wizard control

Multi-step form (or multiple "pages") in one route using Ember.js

起初我已尝试使用路径/控制器/视图进行每个步骤,但由于答案基本上是控制器的状态变量并且在转换时丢失,很明显它不能像这个!

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

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

2 个答案:

答案 0 :(得分:3)

如果您将每个向导页面设为一个组件,然后将模型作为模板参数传递给每个组件,那么您将获得一个非常好的工作流程。 URL是稳定的(不是不断地将垃圾添加到末尾以便传递状态);每当用户进入路线时(例如手动输入URL或者更重要的是,完成向导然后点击浏览器的后退按钮),很容易将用户放入第一步;并且您可以在向导的每个页面上执行验证。

查看我的更长答案here

答案 1 :(得分:1)

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