使用铁路由器版本0.9.4 如何更新URL查询参数而不更改浏览器历史记录?
我有一堆可以更新URL查询参数的选择框。在某些情况下,我想更新URL而不在window.history中添加额外的条目。很多模板都依赖于Router.current()。params反应变量,因此在更改路径时我也需要更新它。
答案 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。