找不到 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();
我在 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();