meteor iron-router

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'' .