1

settingsshell.jsで設定されたsplatルートがあります:

router.map([
   { route: 'settings*child', moduleId: 'views/settings/main', nav: true }
]).buildNavigationModel();

そして、views/settings/main.js私が子ルーターを作成したファイル内:

var childRouter = router.createChildRouter().makeRelative({
    moduleId: 'views/settings',
    fromParent: true
}).map([
   { route: 'users',     moduleId: 'child/users/list', nav: true },
   { route: 'users/:id', moduleId: 'child/users/view', nav: false },
]).buildNavigationModel();

フォルダ構造は次のようになります。

/views  
-/settings  
--settings.js      
--settings.html  
--/child  
---/users  
----list.js  
----list.html  
----view.js  
----view.html

私が直面している問題は次のとおりです。

別の親ルート ページから設定 (#settings) ページに移動しようとすると、コンソールにエラー メッセージが表示されます。

Route Not Found settings undefined

しかし、設定ページには、作成した子ルーターのすべてのリストが表示されたままです。

次に、and に移動しようとする#settings/users#settings/users/{id}、別の親ページから試しても問題もエラーも発生しません。

問題は、splat ルートが常に何かがハッシュの前にあると予想され#settings/users、子なしでは受け入れられない#settingsことだと思います ?

または、実装で何かを見逃しましたか?

ヘルプや提案をいただければ幸いです。
ありがとうございました!

4

1 に答える 1

0

私は非常によく似た設定をしています。子ルーターにルートを作成して、次のような空のルートを表します。

var childRouter = router.createChildRouter().makeRelative({
moduleId: 'views/settings',
fromParent: true
}).map([
   { route: '', moduleId: 'main', nav: true },
   { route: 'users',     moduleId: 'child/users/list', nav: true },
   { route: 'users/:id', moduleId: 'child/users/view', nav: false },
]).buildNavigationModel();
于 2015-06-22T14:50:29.490 に答える