Iron Router,更改URL而不更改浏览器历史记录

时间:2015-10-27 18:44:32

标签: meteor iron-router

使用铁路由器版本0.9.4 如何更新URL查询参数而不更改浏览器历史记录?

我有一堆可以更新URL查询参数的选择框。在某些情况下,我想更新URL而不在window.history中添加额外的条目。很多模板都依赖于Router.current()。params反应变量,因此在更改路径时我也需要更新它。

2 个答案:

答案 0 :(得分:6)

Iron Router在Router.go函数中有一个可选参数,您可以在{replaceState:true}中传递该参数。这将更新URL而不在窗口的历史记录中存储URL更改。

这适用于Iron Router 0.9.4

var path = Router.path('myRoute',{_id: myId}, {query: myParams});
Router.go(path, {replaceState: true});

如果您使用的是较新版本的Iron Router,则参数的顺序可能会略有变化,根据此github issue这将是新订单:

Router.go(path, {}, {replaceState:true});

答案 1 :(得分:1)

您可以使用vanilla JavaScript:

window.history.replaceState(yourNewUrl);

这是一些some documentation。由于这是一项现代功能,如果您想支持旧浏览器,可以use a polyfill

相关问题