Я пытаюсь получить параметры запроса в URL-адресе.
Кажется, нет простого способа сделать это...
что оставляет меня с ощущением, что я, должно быть, что-то пропустил в документе.
Я пытаюсь получить параметры запроса в URL-адресе.
Кажется, нет простого способа сделать это...
что оставляет меня с ощущением, что я, должно быть, что-то пропустил в документе.
железный маршрутизатор >= 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'
.
Просто позвони
Router.current().params //params is the dict you wanted
в железном роутере 7.1+
Интересно три ответа, и никто не дал полный ответ.
Железный маршрутизатор 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.
В Iron Router 1.0.0 вам нужно использовать
this.params.query.YOUR_PARAMETER_NAME
чтобы получить это
Например, если вы используете маршрут /xxx/?a=b
this.params.query.a
выводит «б»
попробуй:
Router.current().params.parametername;
а в файле router.js маршрутизация должна быть:
route(routername/:parametername)
Если вы используете Router.go, убедитесь, что ваш первый параметр — это имя шаблона, а не путь. параметры запроса не передаются, если вы указываете путь.
Закодированный URI не определен. Решение:
Лучший способ получить объект параметров запроса:
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
Вы можете передавать такие запросы в зависимости от того, где вы получаете доступ к маршрутизатору:
В шаблоне
{{pathFor 'routeName' query='queryName=queryValue'}}
В помощнике
Router.go ('routeName',{},{query: 'queryName=queryValue'}
Примечание: пустой объект между routeName
и запросом, если вы хотите указать какие-либо параметры (обратитесь к полным документам, чтобы увидеть разницу).
Если вы хотите передать несколько запросов, сделайте это следующим образом:
query: 'queryName1=queryValue&queryName2=queryValue'
Не используйте пробелы и не забывайте использовать знак &
.