在我的网站上,我有一个带搜索字段的顶部导航栏。一旦我在搜索字段中输入了超过2个字符,铁路由器就会将我带到“搜索”路径并显示结果。当我从搜索字段中删除输入时,我仍然在搜索路径中(不显示任何结果),但我想更改此设置,以便返回到我访问的最后一页(我开始在搜索字段中输入)
我的遗体包含此路由:
<div id="page-wrapper" class="gray-bg">
{{> topNavbar }}
{{> yield}}
{{> yield 'bottom'}}
</div>
在我的topnavbar.js中,我有以下代码将我带到搜索结果:
Template.topNavbar.events({
'keyup input': function (e, t) {
var s = t.find('input').value;
if (s && s.length >= 2) {
Session.set('searchtext', s);
Meteor.subscribe('vod-search', s);
} else {
Session.set('searchtext', '');
Meteor.subscribe('vod-search').stop();
}
Router.go('search')
}
});
我知道我可以使用Router.current()。route.getName()来获取当前路由,但因为搜索输入每次都更新路由我输入一个字符,这不是很有用...
我在topnavbar.js中尝试了这段代码,将路由记录到控制台:
Router.onStop(function () {
Session.set("previousLocationPath", Router.current().route.getName());
});
Router.onBeforeAction(function () {
var previousLocationPath = Session.get("previousLocationPath");
console.log(previousLocationPath);
this.next();
});
现在我完全陷入了思考之路,我可以做些什么来回到我以前的非搜索路线。我仍然是Javascript的新手,所以我可能会错过一些明显的东西,所以我希望有人能指出我正确的方向......
提前致谢!
答案 0 :(得分:1)
我认为你可以使用普通的JS history.back()
回到以前的路由,因为铁路由器使用历史api进行路由。