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

loo*_*shi 4 meteor iron-router

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

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

loo*_*shi 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});
Run Code Online (Sandbox Code Playgroud)

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

Router.go(path, {}, {replaceState:true});
Run Code Online (Sandbox Code Playgroud)