1

次のようなルーターがあります。

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 を使用できるようにしたい)? リダイレクトする前に、複数のルート モデルが読み込まれるのをどのように待つ必要がありますか?

4

2 に答える 2