所以我用durandal创建了一个很好用的子路由器,我试图在下拉列表中将它的路由添加到我的主导航中。我正在使用bootstrap来说清楚。
我对使其工作的一般语法没有任何问题。问题是如何正确地让我的主导航访问子路线。
所以简要介绍一下细节:
应用/
---的ViewModels /
------配置/
--------- index.js
------ nav.js
---查看/
------配置/
---------的index.html
------ nav.html
(希望文件夹结构清晰)
导航视图模型具有对主路由器的引用,我正确绑定了navigationModel属性以获取根菜单项。我尝试在viewmodel中包含config / index.js,并创建属性childRouter,然后将下拉元素绑定到childrouter.navigationModel。这确实创建了正确的项目,但每条路由的哈希都是垃圾。它们只是变成x和y而不是config / x或config / y。
我不明白,因为子路由器仍然是从主路由器构建的,并且包括像这样的makerelative函数:
define(['services/router'],
function (router) {
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels/config',
fromParent: true
}).map([
{ route: 'x', moduleId: 'x', title: 'X', nav: true },
{ route: 'x/:accountId', moduleId: 'xItem', title: 'X', nav: false },
{ route: 'y', moduleId: 'y', title: 'Y', nav: true }
]).buildNavigationModel();
我认为它会从该相对点生成哈希值,但它似乎是从根目录开始的。
有什么想法吗?