Backbone.js 根据当时的URL在主干历史记录中返回到特定点?
我有这样的路线:Backbone.js 根据当时的URL在主干历史记录中返回到特定点?,backbone.js,Backbone.js,我有这样的路线: 类别/关键字/id 用户可以这样导航: 类别/科学/42 类别/科学/13 类别/科学/39 类别/出版/38 类别/出版/91 类别/出版/3 在历史中前后移动的工作方式与它应该的工作方式完全相同,但是我想实现一个后退按钮,将用户带回上一个类别。因此,如果用户位于上面的最后一条路径(/publishing/3)并单击该按钮,我想将用户发送回/science/39 有没有一种方法可以使用Backbone.history根据当时的URL返回到特定点?这里最简单的解决方案可能是按照
类别/关键字/id 用户可以这样导航:
类别/科学/42
类别/科学/13
类别/科学/39
类别/出版/38
类别/出版/91
类别/出版/3 在历史中前后移动的工作方式与它应该的工作方式完全相同,但是我想实现一个后退按钮,将用户带回上一个类别。因此,如果用户位于上面的最后一条路径(/publishing/3)并单击该按钮,我想将用户发送回/science/39
有没有一种方法可以使用Backbone.history根据当时的URL返回到特定点?这里最简单的解决方案可能是按照这里的建议自己存储历史记录。Backbone.history实际上不可查询历史记录内容: 导航到最后一条匹配路线的功能,没有与链接答案中定义的历史相同的“类别”:
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;
}
你没有指定当用户没有导航到其他类别时,你希望应用程序如何反应,所以我的回答中没有包括这一点 你如何存储出版属于科学这一事实?它们是两个完全独立的类别,但我的应用程序中的项目可以同时分为多个类别。