2014-10-07 87 views
0

我见过this thread关于如何追加/修改查询参数而不重复,但我不能让它工作。如何使用铁路由器动态设置查询字符串或参数?

我在我的Meteor应用程序中有一个页面,列出项目并允许过滤。我希望筛选功能是基于网址的,因此每次对筛选器所做的更改都应反映在网址中。 我使用铁路路由器,然后相应地更新订阅。

由于某些原因,我无法修改查询字符串。如果从Template.templateName.events(...)称为此代码不会触发任何动作:

# valuePairs = ["foo=bar", "bar=foo"]  
newUrl = Router.current().route.path {}, { query: valuePairs.join('&') } 
Router.go newUrl 

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

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

如果不是,我怎样才能让上面的代码工作?

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

回答

0

正是基于

,如果我回去我的浏览器历史记录,我可以看到正确的URL

你抑制实际的链接事件? <a href='#'>会马上翻转你。

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

哦,我已经完全忘记了这个问题。您在这里提出的问题在我仍然遇到问题时已在[GitHub]上解决(https://github.com/iron-meteor/iron-router/issues/900#issuecomment-59673360)。无论如何,谢谢你。我(亲自)发现'event.preventDefault()'更具可读性/明显性,但这只是首选项。 – 2015-07-09 14:51:36

相关问题