找不到 Splat 路线(DurandalJS)

Splat Route Not Found (DurandalJS)

我在 shell.js 中配置了 settings splat 路由:

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

在我创建的 views/settings/main.js 文件中 child 路由器:

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

我面临的问题是:

当我尝试从另一个 parent 路由页面导航到设置 (#settings) 页面时,它会在控制台中显示一条错误消息:

Route Not Found settings undefined

但是设置页面仍然显示了我创建的 child 路由器的所有列表。

接下来,我尝试导航到 #settings/users#settings/users/{id},即使从另一个 parent 页面尝试,它也没有问题或错误。

我认为问题是 splat route 总是被认为是哈希值前面的东西 #settings/users 而它 不会 接受 #settings 没有 child ?

或者我在实施过程中遗漏了什么?

如有任何帮助或建议,我们将不胜感激!
谢谢!

我有一个非常相似的设置,我在子路由器上创建一个路由来表示这样的空白路由:

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();