我正尝试初始化子路由器,为我的应用程序的客户部分构建子导航。带父参数的durandal子路由器
我试图配置URL是:
#customer/1/orders/1
我定义的路由才能到客户视图在我shell.js
define(['plugins/router', 'durandal/app'], function (router, app) {
return {
router: router,
activate: function() {
router.map([
{ route: 'customer/:id*splat', moduleId: 'customer/customer' }
]).buildNavigationModel();
return router.activate();
}
};
});
我创建了一个包含子客户视图导航为客户部分。导航将使用路线中的客户ID。除了显示客户子导航之外,此视图并不做任何事情。我在这个视图中创建了一个子路由器。
define(['plugins/router', 'knockout'], function (router, ko) {
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'customer',
fromParent: true
}).map([
{ route: 'orders/:orderId', moduleId: 'orders' }
]).buildNavigationModel();
var activate = function(id) {
};
return {
router: childRouter,
activate: activate
};
});
我的问题是,我似乎无法让路由工作,当我有我的父路由器中的参数。客户视图被路由到但订单视图不会。我将最终在客户部分有更多的子视图。
@blazkovicz我最后不得不自定义哈希添加到我的每一个路线'哈希的:“#客户/” + ID +“/ orders''其中'ID '是我的激活功能中的参数。不知道这是否是最好的或正确的方法。 – Justin