【发布时间】:2015-06-22 22:50:29
【问题描述】:
我在 shell.js 中配置了settings 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
但设置页面仍然显示我创建的所有子路由器列表。
接下来,我尝试导航到#settings/users 和#settings/users/{id},即使从另一个父页面尝试它也没有问题或错误。
我认为问题是 splat route 总是期望在哈希前面有一些东西,比如 #settings/users 并且它不会在没有孩子的情况下接受 #settings 吗?
或者我在执行过程中遗漏了什么?
任何帮助或建议将不胜感激!
谢谢!
【问题讨论】:
标签: durandal durandal-2.0 durandal-navigation