我正在尝试在网址中获取查询参数。
似乎没有一种简单的方法可以做到这一点......
这让我觉得我一定错过了文档中的某些内容。
答案 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