我正在尝试初始化一个子路由器来为我的应用程序的客户部分构建子导航。
我要配置的网址是:
#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
};
});
我的问题是,当我的父路由器中有参数时,我似乎无法让路由工作。客户视图被路由到,但订单视图没有。我最终将在客户部分下获得更多子视图。