我希望路由子状态不会出现在 URL 中,但仍然能够利用路由类,我可以在该路由类上定义 renderTemplate、模型、setupController 等钩子。v2路由器可以做到这一点吗?我正在使用 Ember 候选版本 2。
这是一个例子。
假设我有路线:
/exercise/:exercise_id
/exercise/:exercise_id/correct
/exercise/:exercise_id/incorrect
我希望所有这些都显示在 URL 中:
/exercise/:exercise_id
因为我不希望学生直接在/correct
ULR 末尾输入并得到正确答案。虽然我有办法阻止它工作,但完整的路线仍然显示在 URL 中。从学生的角度来看,我只希望他们将状态视为/exercise/:exercise_id
.
当然,我可以将正确与不正确的状态存储在某个控制器变量中,但随后我失去了使用路由类的便利性,ExerciseCorrectRoute 和 ExerciseIncorrectRoute,我想表现得不同,所以像 renderTemplate 和 setupController 这样的钩子是很高兴在不同的地方干净地定义。
想法?
凯文
更新:
我接受了 Dan Gebhardt 的建议,因为我喜欢尽可能地将事物保留在框架考虑的设计案例中,因为鉴于 Ember 仍在不断发展,这似乎可以减少令人头疼的问题。我也没有机会尝试 inDream 的 hack。
虽然我仍然认为如果路由器添加一个功能来屏蔽 URL 中的子状态会很好。