Как я могу установить параметр запроса в AngularJS без выполнения маршрута?
мое Угловое приложение позволяет пользователю загружать элемент, и когда это произойдет, я хотел бы установить строку запроса, содержащую идентификатор элемента, чтобы, если пользователь обновляет страницу (или хочет ссылаться на нее), URL-адрес уже установлен (уже есть код, который загружает элемент, если идентификатор присутствует в $routeParams).
Как я могу установить этот параметр запроса, не вызывая маршрут? Есть и другие вещи на странице, которые будут сброшены (в том числе плагин, который придется перезагрузить все его данные) если маршрут происходит, поэтому важно, чтобы только параметр запроса изменился.
короче говоря, когда я загружаю пункт 123, все, что я хочу, чтобы произошло, это то, что URL-адрес изменяется от:
www.myurl.com/#/Items
to:
www.myurl.com/#/Items?id=123
без какой-либо маршрутизации происходит.
какой лучший способ сделать это?
1 ответ:
в своем $routeProvider конфигурация
reloadOnSearch
в false:$routeProvider .when('/items', { controller: 'ItemsCtrl', templateUrl: '/templates/items', reloadOnSearch: false }, ... );
и в вашем контроллере использовать
$location.search()
установитьid
param:$location.search('id', 123);