Meteor的Iron Router:在客户端和服务器端获得查询参数

那里

在我的应用程序中,如果有人在URL上传递参数,我想在模板上做不同的事情。

我知道我可以在服务器端使用this.params.query查询string,但我怎么可以传递给客户端或在客户端获取此值?

在我的情况下,我会发送一个可选的redirect的URL,如果它通过,主任务后,我的应用程序将redirect到给定的url的用户。 但是我只知道如何在服务器端看到redirect ,而不是在客户端,所以当我提交表单时,这些信息就会丢失

你可以帮帮我吗?

您可以通过以下方式访问模板中的路由器参数:

 Router.current().params.query 

也许在你的路线,你可以这样做:

 onBeforeAction: function() { Session.set("query", this.params.query); this.next(); }, 

然后在客户端的某个地方,你可以像这样做一个帮手:

 Template.yourTemplateName.helpers({ query: function() { return Session.get("query"); } }); 

我不知道如何处理你的redirect,但也许它会在帮手。 所以你的html会是这样的:

 {{#if query}}{{query}}{{/if}} 

而在助手中,你可能用“Router.go('/ where-you-want-to-going')”replace“return Session.get(”query“)。 或者,如果查询是肯定的,只需写另一个帮助程序即可在HTML中运行。