Meteor的铁路由器:在客户端和服务器端获取查询参数

时间:2015-07-27 03:21:03

标签: node.js meteor query-string iron-router

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

我知道我可以使用this.params.query在服务器端获取查询字符串但是如何将其传递给客户端或在客户端获取此值?

在我的情况下,我会在网址上发送一个可选的redirect,如果已经通过,则在主要任务之后,我的应用会将用户重定向到给定的网址。但我只知道如何在服务器端看到redirect,而不是在客户端,所以当我提交表单时,这些信息会丢失

你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下命令访问模板中的路由器参数:

Router.current().params.query

答案 1 :(得分:0)

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

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

然后在客户端的某个地方你可以像这样帮忙:

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

我不知道如何处理重定向,但也许它可以在帮助程序中运行。所以你的HTML会是这样的:

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

在帮助器中你可以用“Router.go('/ wherever-you-to-go');”之类的东西替换“return Session.get(”query“)”。或者如果查询是肯定的,只需编写另一个帮助程序在html中运行。