Meteor Iron路由器,更改URL而不更改浏览器历史记录

Meteor Iron路由器,更改URL而不更改浏览器历史记录,meteor,iron-router,Meteor,Iron Router,使用iron路由器版本0.9.4 如何在不更改浏览器历史记录的情况下更新URL查询参数 我有一堆可以更新URL查询参数的选择框。在某些情况下,我希望在不向window.history添加额外条目的情况下更新URL。很多模板都依赖于Router.current().params被动变量,因此在更改路由时我也需要更新该变量。您可以使用vanilla JavaScript: window.history.replaceState(yourNewUrl); 这里有一些。由于这是一项现代功能,如果您想支

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


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

您可以使用vanilla JavaScript:

window.history.replaceState(yourNewUrl);

这里有一些。由于这是一项现代功能,如果您想支持较旧的浏览器,您可以。

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,则参数顺序可能会有一些变化,根据这一点,这将是新的顺序:

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

谢谢,正常情况下这会起作用,但在我的例子中,我有一些模板依赖于Router.current().params,所以我还需要更新Router参数。