Durandal中的多个起始页面

时间:2013-09-25 12:49:19

标签: durandal

我在下面包含了我的main.js和shell.js以供参考。正如您所看到的,我在shell.js中的默认路由是viewmodels / search,它有第二条路径到viewmodels / application,可以选择一个参数,即特定应用程序的IDKey。大多数情况下,这是我希望用户进入系统的方式,从搜索屏幕开始,他们可以搜索特定应用程序,或者可以选择单击按钮来启动新应用程序。但是,我希望能够发布可以跳过搜索页面的URL链接,并使用具有相应IDKey的viewmodels / application页面启动应用程序。

我似乎无法弄清楚如何实现此行为。谁能让我指出如何实现这个目标的正确方向。

MAIN.JS

define('jquery', [], function () { return jQuery; });
define('knockout', [], function () { return ko; });


define(['durandal/system', 'durandal/app', 'durandal/viewLocator'], function (system, app, viewLocator) {
    app.title = 'My App';

    //specify which plugins to install and their configuration
    app.configurePlugins({
        router: true,
        dialog: true,
        widget: {
            kinds: ['expander']
        }
    });

    app.start().then(function () {

        toastr.options.positionClass = 'toast-bottom-right';
        toastr.options.backgroundpositionClass = 'toast-bottom-right';

        viewLocator.useConvention();

        app.setRoot('viewmodels/shell', 'entrance');

    });
});

SHELL.JS

define(['plugins/router'], function (router) {
    return {
        router: router,
        activate: function () {
            return router.map([
                { route: '', moduleId: 'viewmodels/search', title: 'Permit Application Search', nav: true },
                { route: 'application(/:id)', moduleId: 'viewmodels/application', title: 'Permit Application', nav: true }
            ]).buildNavigationModel()
              .activate();
        }
    };


});

1 个答案:

答案 0 :(得分:1)

按照代码中显示的路线,您应该只需发布http://yourdomain.com#application/12

等链接