我有一个看起来像这样的路由器:
App.Router.map ->
@resource 'categories', ->
@resource 'category', path: ':category_id', ->
@resource 'composites', ->
@resource 'composite', path: 'composite_id, ->
@resource 'questions', ->
#...
所有复数路由都有一个模型挂钩,根据父级加载所有模型(加载所有类别的根资源除外)。像复合模型钩子会做类似的事情App.Composite.find category_id: @modelFor('category').get('id')
。
所以这是可行的,但是在尝试了多种方法后我无法完全完美地工作是自动重定向。我希望一旦加载了类别,就使用类别路由加载的 firstObject 重定向到类别路由,然后重定向到复合路由,然后重定向到复合路由中加载了 firstObjevt 的复合路由,等等。直到最终水平。
我使用重定向使其部分工作,firstObjectObserver,......但我经常遇到无限重定向的问题,或者在尝试使用第一个模型重定向到下一个路由之前没有加载模型,......
这样做的最佳做法是什么?我是否应该以另一种方式重写我的路由器(我希望能够为每个级别提供一个 URL,即使最终它会自动重定向到最后一个级别,但模型可以更改)?在重定向之前我应该如何等待多个路由模型加载?