2015-02-09 5 views
0

У меня здесь относительно простая проблема, но пока не могу найти решение. Я использую Ember и вызывая маршрут с параметрами запроса. Код ниже.Ember QueryParams с символом «=»

импорт Ember от "ember";

export default Ember.ObjectController.extend({ 
    queryParams : ['user_id','custom_lis_person_name_given'] 
    user_id : null, 
    custom_lis_person_name_given : null 
}); 

Так что теперь позволяет сказать, что я звоню мой маршрут со следующей URL,

localhost:4200/index.html#/route1?user_id=123456&custom_lis_person_name_given=hello 

Теперь значения параметров запроса является

user_id = 123456 
custom_lis_person_name_given = hello 

Теперь, если я изменить URL, чтобы выглядят как

localhost:4200/index.html#/route1?user_id=12345=6&custom_lis_person_name_given=hello 
localhost:4200/index.html#/route1?user_id=123456=&custom_lis_person_name_given=hello 

Now th e рассчитываются как

user_id = 12345 or user_id=123456 
custom_lis_person_name_given = hello 

Таким образом, в основном значение заканчивается там, где оно видит знак = в значении параметра запроса. Есть ли обходной путь для этого? мне нужно user_id = «12345 = 6» или «123456 =»

Может быть, есть некоторые крючки в контроллер или маршрут, который может сделать это. Я пробовал serializeQueryParam и deserializeQueryParam, но это не помогло.

Заранее спасибо

+0

У меня есть одно обходное решение, избегая запросаParamter, прежде чем перебирать URL. я просто сделал ** escape ('123456 =') **, и это сработало. Но в приложении URL-адрес создается в бэкэнд. Было бы лучше, если бы я смог полностью исправить его на стороне UI. – aneeshere

ответ

0

вы пробовали:

encodeURIComponent(url) 

?

Это должно делать работу. Обратите внимание, что вам все равно нужно закодировать знак =, чтобы он был правильным.

Разница между encdeURI и encodeURIComponent хорошо описана здесь: Should I use encodeURI or encodeURIComponent for encoding URLs? в принятом ответе.

EDIT:

Если вы хотите вручную изменить ссылку и проверить, если она работает, просто замените = с %3D, результат encodeURIComponent("=").

+0

Ситуация похожа на весь URL (параметры ember route + query), сгенерированный в java-файле и вызывается в браузере. Да, так одно решение - сделать escape (url) со стороны java. Но я хотел знать, есть ли что-то, что я мог бы сделать на стороне интерфейса. – aneeshere

+0

'encodeURIComponent' - это функция javascript :) – andrusieczko

+0

Я отредактировал свой ответ, проверьте, помогает ли это вам – andrusieczko

Смежные вопросы