【问题标题】:Durandal Routing - routing to a resource with a particular id?Durandal 路由 - 路由到具有特定 ID 的资源?
【发布时间】:2013-05-19 23:42:53
【问题描述】:

我正在尝试配置我的路由,以便导航到 #/my 显示 #/folder/62 的内容(或存储在变量中的某些 id) - 导航到 #/public 显示 #/folder 的内容/1(相同的概念)。

此外,我希望应用程序在加载时导航到这些路由之一,具体取决于用户是否经过身份验证。身份验证工作已经完成,但是一旦配置了上述路由,我想激活其中一个。

这是我所拥有的:

        activate: function () {
        router.useConvention();
        router.handleInvalidRoute = function (route, params) {
            //debugger;
            logger.logError("Invalid route", route, null, true);
        };

        router.map([                
            { url: 'home', moduleId: 'viewmodels/home', name: 'Home', visible: false },               
            { url: 'my', moduleId: 'viewmodels/folder', name: 'My Content', visible: false }, // Should display contents of /folder/2
            { url: 'public', moduleId: 'viewmodels/folder', name: 'Public Content', visible: false }, // Should display contents of /folder/3
            { url: 'set/:id', moduleId: 'viewmodels/set', name: 'Set', visible: false },
            { url: 'folder/:id', moduleId: 'viewmodels/folder', name: 'Folder', visible: false }
        ]);

        if (auth.isAuthenticated)
            return router.activate('my'); // should show details page of a particular folder
        else {
            return router.activate('public'); // should show details page of a particular folder
        }
    }

【问题讨论】:

    标签: single-page-application durandal sammy.js


    【解决方案1】:

    https://groups.google.com/forum/#!searchin/durandaljs/app.setRoot/durandaljs/t1hrLfOh1oM/RtCekmY0bDAJ 中描述的app.setRoot 可用于为经过身份验证/未经过身份验证的用户显示不同的视图。

    如果在示例中只允许经过身份验证的用户查看“文件夹/特殊 ID”的内容,那么您可能会考虑不要通过路由器公开这些内容。使用 #my 中的标准撰写功能来加载 specialID 视图/视图模型。

    【讨论】:

    • 谢谢雷纳。如果可能的话,我想有条件地激活... root 已设置为 shell,我不想更改它。另外,关于我的问题的第一部分有什么想法吗?如何配置我的应用程序,以便在浏览器中导航到 /folder/my 时显示 /folder/23(但将文本保留在 url,而不是 id)?
    猜你喜欢
    • 2013-05-21
    • 1970-01-01
    • 2021-12-04
    • 2011-01-17
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多