如何在Iron-router中获取查询参数?

时间:2014-04-14 01:39:01

标签: meteor iron-router

我正在尝试在网址中获取查询参数。

似乎没有一种简单的方法可以做到这一点......

这让我觉得我一定错过了文档中的某些内容。

8 个答案:

答案 0 :(得分:43)

致电

Router.current().params //params is the dict you wanted

中的

答案 1 :(得分:23)

有趣的是,有三个答案,没有人提供完整的答案。

Iron-Router 1.0.x

从路线中,使用:

// URL: http://example.com/page/?myquerykey=true
this.params.query   // returns the full query object
this.params.query.myquerykey   // returns a particular query value

同样,在路线之外(但仍在客户端代码内),在模板内,使用:

// URL: http://example.com/page/?myquerykey=true
Router.current().params.query
Router.current().params.query.myquerykey

查询参数,不要与通过URL传递的参数混淆。

答案 2 :(得分:19)

铁路由器> = 1.0

路线的query parameters可用作this.params.query的属性。

如果您的网址如下:

/posts/5?sort_by=created_at

然后this.params.query.sort_by将等于'created_at'


铁路由器< 1.0

路径的查询参数可用作this.params的属性。

如果您的网址如下:

/posts/5?sort_by=created_at

然后this.params.sort_by将等于'created_at'

答案 3 :(得分:17)

在Iron Router 1.0.0中,您需要使用

this.params.query.YOUR_PARAMETER_NAME

得到它

例如,如果路线是/ xxx /?a = b

this.params.query.a

输出' b'

答案 4 :(得分:2)

试试看:

 Router.current().params.parametername;

并且在router.js文件中路由必须是:

route(routername/:parametername)

答案 5 :(得分:1)

如果您使用的是Router.go,请确保您的第一个参数是模板名称,而不是路径。如果指定路径,则不传递查询参数。

答案 6 :(得分:0)

您可以根据访问路由器的位置传递此类查询:

模板

{{pathFor 'routeName' query='queryName=queryValue'}}

帮助

Router.go ('routeName',{},{query: 'queryName=queryValue'}

注意:routeName和查询之间的空对象是您要指定任何参数(请参阅完整文档以查看差异)。

如果您想传递多个查询,请执行以下操作:

query: 'queryName1=queryValue&queryName2=queryValue'

请勿使用空格并记住使用&符号。

答案 7 :(得分:0)

编码的URI undefined解决方案:

获取查询参数对象的更好方法是:

this.request.query.MyParam

使用建议的选项:

this.params.query.MyParam

只要你没有使用encodedURI参数就可以了,当使用带有encodedURI参数的这个选项时,参数将等于undefined。

以下示例:

{ // console.log(this.params.query)
    product: 'Chair',
    ip: '172.0.1.183',
    message: 'My Little Chair',
    request: '100% Discount',
    severity: '4',
    api_key: 'XXXXX' 
}

{ // console.log(this.params.query)
    product: 'Chair',
    ip: '172.0.1.183',
    message: 'My Little Chair',
    request: 'undefined', // NOTICE THIS CHANGED TO UNDEFINED!
    severity: '4',
    api_key: 'XXXXX' 
}

Original Query String:
?product=Chair&ip=172.0.1.183&message=My Little Chair&request=100%25%20Discount&severity=4&api_key=XXXXX