使用铁路由器中的Router.go传递查询参数

Aas*_*wal 10 meteor iron-router

我试图在Router.go中传递查询参数,如下所示:

var filter = 'abc';
var path = Router.current() && Router.current().path;
Router.go(path, {query: {filter: filter}});
Run Code Online (Sandbox Code Playgroud)

但是这并没有改变url,它仍然只加载当前路径而没有查询字符串.但是,如果我手动将查询参数添加到路径,如:

Router.go(path+'?filter='+filter);
Run Code Online (Sandbox Code Playgroud)

这很好用.但是因为我试图用一些过滤的数据加载相同的页面.因此,单击过滤器按钮会反复将过滤器字符串反复附加到路径.

使用铁路由器传递查询字符串的正确方法是什么?

Max*_*ges 11

就在文档中

Router.go('post.show', {_id: 1}, {query: 'q=s', hash: 'hashFrag'});
Run Code Online (Sandbox Code Playgroud)

上面的JavaScript将导航到此网址:

/post/1?q=s#hashFrag
Run Code Online (Sandbox Code Playgroud)

https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#named-routes


ric*_*ilv 1

尝试这个:

var path = Router.current() && Router.current().route.originalPath;
Run Code Online (Sandbox Code Playgroud)

这应该为您提供不附加查询字符串的路径。