如何使用iron-router动态设置查询字符串或参数?

时间:2014-10-07 13:39:14

标签: meteor iron-router

我已经看过this thread如何在不重复的情况下附加/修改查询参数,但我无法使其正常工作。

我的Meteor应用程序中有一个页面列出项目并允许过滤。我希望过滤是基于URL的,因此对过滤器的每次更改都应反映在URL中。 我使用iron-router然后相应地更新订阅。

出于某种原因,我无法修改查询字符串。如果从Template.templateName.events(...)

调用此代码,则不会触发任何操作
# valuePairs = ["foo=bar", "bar=foo"]    
newUrl = Router.current().route.path {}, { query: valuePairs.join('&') }
Router.go newUrl

但是,如果我从命令行调用Router.go(newUrl),则会发生预期的结果,即URL更新。

是否有另一种首选方法来修改查询?

如果没有,我怎样才能使上面的代码有效?

更新 - 我刚刚发现在运行事件后,如果我回到浏览器历史记录中,我可以看到正确的网址。它看起来像(?)触发另一个页面加载以返回到原始页面。

1 个答案:

答案 0 :(得分:0)

仅基于

  

如果我回到浏览器历史记录中,我可以看到正确的网址

你是否压制了实际的链接事件? <a href='#'>会让你右后卫。

Template.tempyTheTemplate.events({
    'click awesomeButton': function() {
        // URL stuff
        Router.go(magicURL);
        return false;  // <-- suppresses the event
    }
});