1

ページネーション/ソート/検索を可能にするネストされたルート構造があり、基本的に何らかの方法でArrayControllerを微調整します。現在の実装で私が抱えている問題は、レンダリングする有効なページを取得するためにすべてが必要なことです。

http://localhost:8000/#/page/1/sort/username/search/dave

ページのみを渡すと、エラーが発生します

キャッチされていないエラー: アサーションに失敗しました: パスの状態が見つかりませんでした

ネストされたルートに何かが欠けていますか、それともソート/検索をオプションとしてマークする必要がありますか?

PersonApp.Router = Ember.Router.create({
  root: Ember.Route.extend({
    index: Ember.Route.extend({
      route: '/',
      connectOutlets: function(router) {
        router.get('applicationController').connectOutlet('person', router.get('store').findAll(PersonApp.Person));
      },
      paginated: Ember.Route.extend({
        route: '/page',
        index: Ember.Route.extend({
          route: '/:page_id',
          connectOutlets: function(router, context) {
            console.log("here with page id " + context.page_id);
            router.get('personController').set('selectedPage', context.page_id);
          },
          exit: function(router) {
            router.get('personController').set('selectedPage', undefined);
          },
          sorted: Ember.Route.extend({
            route: '/sort',
            index: Ember.Route.extend({
              route: '/:column',
              connectOutlets: function(router, context) {
                console.log("SORTING " + context.column);
              },
              search: Ember.Route.extend({
                route: '/search',
                index: Ember.Route.extend({
                  route: '/:term',
                  connectOutlets: function(router, context) {
                    console.log("SEARCHING " + context.term);
                  }
                })
              })
            })
          })
        })
      })
    })
  })
});
4

1 に答える 1

3

Emberjs ルーターはリーフ ノードへのルーティングのみを許可するため、各ルートにダミーの「/」ルートを追加して、各ノードをリーフ ノードにする必要があります。次の質問はあなたのものに似ています。それらを見ることができます。 Ember Router がリーフ ルートへの移動のみを許可するのはなぜですか?

于 2012-09-17T07:02:30.220 に答える