我正嘗試初始化子路由器,爲我的應用程序的客戶部分構建子導航。帶父參數的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