Подтвердить что ты не робот

Как получить параметры запроса в Iron-router?

Я пытаюсь получить параметры запроса в URL-адресе.

Кажется, что нет простого способа сделать это...

который оставляет меня с чувством, что я, должно быть, пропустил что-то в доке.

4b9b3361

Ответ 1

железный маршрутизатоp >= 1.0

Параметры запроса доступны как свойства this.params.query.

Если ваш URL-адрес выглядел так:

/posts/5?sort_by=created_at

то this.params.query.sort_by будет равно 'created_at'.


железный маршрутизатор < 1.0

Параметры запроса маршрута доступны как свойства this.params.

Если ваш URL-адрес выглядел так:

/posts/5?sort_by=created_at

тогда this.params.sort_by будет равно 'created_at'.

Ответ 2

Просто позвоните

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

в Iron Router 7.1 +

Ответ 3

Интересно три ответа, и никто не предложил полный ответ.

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.

Ответ 4

В Iron Router 1.0.0 вам нужно использовать

this.params.query.YOUR_PARAMETER_NAME

чтобы получить его

Например, если вы маршрутизируете /xxx/? a = b

this.params.query.a

выводит 'b'

Ответ 5

попробуйте tihs:

 Router.current().params.parametername;

а в маршрутизации router.js должен быть:

route(routername/:parametername)

Ответ 6

Убедитесь, что если вы используете Router.go, ваш первый параметр является именем шаблона, а не дорожкой. параметры запроса не передаются, если вы укажете путь.

Ответ 7

Вы можете передавать запросы, подобные этому, в зависимости от того, где вы обращаетесь к маршрутизатору:

В шаблоне

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

В помощнике

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

Примечание: пустой объект между routeName и запросом - это если вы хотите указать какие-либо параметры (обратитесь к полному документу, чтобы увидеть разницу).

Если вы хотите передать несколько запросов, сделайте следующее:

query: 'queryName1=queryValue&queryName2=queryValue'

Не используйте пробелы и не забудьте использовать знак &.

Ответ 8

Кодированный 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