我已经看过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更新。
是否有另一种首选方法来修改查询?
如果没有,我怎样才能使上面的代码有效?
更新 - 我刚刚发现在运行事件后,如果我回到浏览器历史记录中,我可以看到正确的网址。它看起来像(?)触发另一个页面加载以返回到原始页面。
答案 0 :(得分:0)
仅基于
如果我回到浏览器历史记录中,我可以看到正确的网址
你是否压制了实际的链接事件? <a href='#'>
会让你右后卫。
Template.tempyTheTemplate.events({
'click awesomeButton': function() {
// URL stuff
Router.go(magicURL);
return false; // <-- suppresses the event
}
});