清除实时/被动搜索输入后,如何进入上次访问的Meteor路线?

时间:2015-10-29 11:18:44

标签: meteor iron-router

在我的网站上,我有一个带搜索字段的顶部导航栏。一旦我在搜索字段中输入了超过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的新手,所以我可能会错过一些明显的东西,所以我希望有人能指出我正确的方向......

提前致谢!

1 个答案:

答案 0 :(得分:1)

我认为你可以使用普通的JS history.back()回到以前的路由,因为铁路由器使用历史api进行路由。