В моем приложении для одной страницы есть страница поиска с множеством фильтров. Он работает, поскольку REST api вызывает каждый запрос на поиск. Мое требование - обновить URL-адрес браузера при каждом поиске, но мой контроллер не должен обновляться. Это мой настоящий url http://www.example.com/#/search_result
При каждом запросе на поиск должен меняться URL.
http://www.example.com/#/search_result/?keyword=tagar
http://www.example.com/#/search_result/?keyword=tagar&stage=[70]&value_from=0
http://www.example.com/#/search_result/?keyword=city=[6003]&country=[223]&keyword=dubai&stage=[10,20]&value_from=0
Как мудрый, будет много возможностей.
Цель этой проблемы заключается в том, что если я ввожу прямой URL-адрес поиска, он должен показать результат поиска.
Любая помощь пожалуйста.
Поскольку вы использовали тег 'angular-ui-router', вы могли бы определить свой URL-адрес, используя api-urlMatcher. http://angular-ui.github.io/ui-router/site/#/api/ui.router.util.type:UrlMatcher
Это означает, что государство не изменится. Только параметры состояния будут :)
ОБНОВЛЕНИЕ: Это немного уродливо, но оно должно работать :) Моя рекомендация заключается в том, что вы помещаете это в директиву. Имейте в виду, что вы получаете тугое соединение таким образом.
$rootScope.$on('$stateChangeStart', function (ev, toState, toParams, fromState, fromParams) { if(fromState.name === 'search-result' && toState.name === 'search-result'){ ev.preventDefault();//add the logic to update the results based on toParams } });