根据当时的 URL 回到 Backbone 历史到特定点?

Go back in Backbone history to a specific point based on the URL at that time?

我有这样的路线:
category/keyword/id

用户可以这样导航:
category/science/42
category/science/13
category/science/39
category/publishing/38
category/publishing/91
category/publishing/3

在历史记录中前后移动与它应该的完全一样,但我想实现一个后退按钮,使用户返回到上一个类别。因此,如果用户位于上面的最后一条路线 (/publishing/3) 并单击该按钮,我想将用户发送回 /science/39。

有没有办法根据当时的URL使用Backbone.history回到特定的点?

此处最简单的解决方案可能是按照此处的建议自行存储历史记录。 Backbone.history 对历史内容并不是真的有疑问: Get previous router/url in backbone application

导航到最后一个匹配路线的函数没有相同 "category" 与链接答案中定义的历史将是:

function getCategory(fragment) {
    return fragment.split("/")[1];
}

function goBackToLastMatchingRouteOfOtherCategory() {
    var reversedHistory = history.reverse();
    var currentCategory = getCategory(Backbone.history.getFragment());
    for (var historyIndex in reversedHistory) {
        var historyFragment = reversedHistory[historyIndex].fragment;
        if (getCategory(historyFragment) !== currentCategory) {
            router.navigate(historyFragment, {trigger: true});
            return true;
        }
    } 
    # No matching route with other category found in history
    return false;
}

您没有指定当用户没有导航到其他类别时您希望应用程序如何反应,所以我没有将其包含在我的回答中。