【发布时间】:2013-11-14 16:33:59
【问题描述】:
我正在尝试初始化一个子路由器来为我的应用程序的客户部分构建子导航。
我要配置的网址是:
#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 我最终不得不为我的每个路由
hash: '#customer/' + id + '/orders'添加自定义哈希,其中id是我的激活函数中的参数。不确定这是否是最好的或正确的方法。
标签: durandal durandal-2.0