meteor - ¿Cómo obtener los parámetros de consulta en Iron-router?
(8)
Estoy tratando de obtener los parámetros de consulta en la url.
No parece haber una manera fácil de hacer esto ...
lo que me da la sensación de que debo haberme olvidado algo en el documento.
Asegúrese de que si usa Router.go su primer parámetro es un nombre de plantilla, y no una ruta. los parámetros de consulta no se pasan si especifica una ruta.
Curiosamente tres respuestas y nadie ofreció la respuesta completa.
Iron-Router 1.0.x
Desde dentro de una ruta, use:
// URL: http://example.com/page/?myquerykey=true
this.params.query // returns the full query object
this.params.query.myquerykey // returns a particular query value
Del mismo modo, fuera de la ruta (pero aún dentro del código del cliente), y dentro de su plantilla, use:
// URL: http://example.com/page/?myquerykey=true
Router.current().params.query
Router.current().params.query.myquerykey
Los parámetros de consulta no deben confundirse con los parámetros que se pasan a través de la URL.
En Iron Router 1.0.0, debe usar
this.params.query.YOUR_PARAMETER_NAME
para conseguirlo
Por ejemplo, si la ruta es / xxx /? A = b
this.params.query.a
salidas ''b''
Puede pasar consultas como esta dependiendo de dónde acceda al enrutador:
En la plantilla
{{pathFor ''routeName'' query=''queryName=queryValue''}}
En el ayudante
Router.go (''routeName'',{},{query: ''queryName=queryValue''}
Nota: el objeto vacío entre routeName
y la consulta es si desea especificar algún parámetro (consulte los documentos completos para ver la diferencia).
Si desea pasar varias consultas, hágalo así:
query: ''queryName1=queryValue&queryName2=queryValue''
No use espacios y recuerde usar el signo &
.
Solo llama
Router.current().params //params is the dict you wanted
en Iron Router 7.1+
prueba tihs:
Router.current().params.parametername;
y en el enrutamiento del archivo router.js debe ser:
route(routername/:parametername)
URI codificado Solución no definida:
La mejor forma de obtener el objeto de parámetros de consulta es:
this.request.query.MyParam
Usando la opción sugerida de:
this.params.query.MyParam
Está bien, siempre y cuando no esté trabajando con parámetros de URL codificados, cuando use esta opción con el parámetro encodedURI, el parámetro será igual a indefinido.
Ejemplo a continuación:
{ // 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
router de hierro> = 1.0
Los parámetros de consulta de una ruta están disponibles como propiedades de this.params.query
.
Si su URL se veía así:
/posts/5?sort_by=created_at
entonces this.params.query.sort_by
equivaldría a ''created_at''
.
router de hierro <1.0
Los parámetros de consulta de una ruta están disponibles como propiedades de this.params
.
Si su URL se veía así:
/posts/5?sort_by=created_at
entonces this.params.sort_by
equivaldría a ''created_at''
.