如何将Splat路由设置为默认路由Durandal 2.0

时间:2013-11-12 12:28:01

标签: durandal durandal-2.0 durandal-navigation

我的默认路由有子视图,我可以在Durandal 2.0中将Splat路由设置为默认路由,如果是的话我怎么尝试下面但是它失败了,基本上我想在默认视图中实现一个childrouter我该怎么办呢..

define(['plugins/router'], function (router) {
return {
    router: router,
    activate: function () {
        return router.map([                
            { route: 'knockout-samples*details',    moduleId: 'ko/index',title: 'Knockout Samples',  nav: true, hash: '#knockout-samples' }
        ]).buildNavigationModel()              
          .activate();
    }
};

});

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么是 - 你可以将splat作为默认路线。您可以在root shell中执行以下操作:

router.map({
    moduleId: "child/shell",
    route: "*details"
});

然后在你孩子的视图模型中:

var childRouter = rootRouter
    .createChildRouter()
    .makeRelative({ moduleId: "child" });

// Uses "child/defaultPage" as the view model, and "#/" as the route
childRouter.map({
    moduleId: "defaultPage",
    route: ""
});

希望有所帮助。