我有这样的路线:
类别/关键字/ ID
用户可以这样导航:
类别/科学/ 42
类别/科学/ 13
类别/科学/ 39
类别/出版/ 38
类别/出版/ 91
category / publishing / 3
在历史中前后移动的工作方式与它应该完全相同,但我想实现一个后退按钮,将用户带回到上一个类别。因此,如果用户位于上面的最后一个路径(/ publishing / 3)并单击该按钮,我想将用户发送回/ science / 39。
有没有办法使用Backbone.history根据当时的URL返回特定点?
答案 0 :(得分:1)
这里最简单的解决方案可能是按照此处的建议自行存储历史记录。 Backbone.history对于历史记录内容来说并不真正可以使用: Get previous router/url in backbone application
导航到最后匹配路线的功能没有相同的“类别”,其历史记录定义为链接的答案:
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;
}
当用户未导航到其他类别时,您未指定应用程序的响应方式,因此我在答案中未将其包括在内。