Как обновить URL-адрес в angular js с помощью $route и $routeParams?
Как перенаправить или обновить URL-адрес? Я не могу найти хорошую документацию по этому поводу. В основном, я хочу, чтобы динамически изменять $routeParams и обновлять URL с новым значением.
Мой код выглядит следующим образом:
if ($routeParams.time) {
var url;
$routeParams.time = encodeURIComponent(value);
url = '/' + $routeParams.time + '/' + 'marketing/networks';
$location.path(url);
} else {
$routeParams.time = encodeURIComponent(value);
url = '/' + $routeParams.time + $location.path();
$location.path(url);
}
Ответы
Ответ 1
Прочитав комментарии к моему ответу, я думаю, что, возможно, это не правильный ответ для этого случая. Прежде чем использовать это решение, прочитайте комментарии и другие ответы. Я больше не использую Angular, поэтому я не чувствую себя готовым ответить.
Я оставляю исходный ответ без изменений ниже:
Вы правильно меняете местоположение, но AngularJS не понимает, что он изменился.
Вы можете решить проблему, используя метод "$ apply" вашей области действия следующим образом:
$location.path( url );
$scope.$apply();
Или вот так:
$scope.$apply( $location.path( url ) );
См. $apply documentation здесь http://docs.angularjs.org/api/ng.$rootScope.Scope
Ответ 2
Вместо этого вы можете попробовать собственный объект-браузер $window.location.href
, в соответствии с http://docs.angularjs.org/guide/dev_guide.services.$ местоположение (в разделе Caveats
).
Ответ 3
вы должны использовать https://angular-ui.github.io/
щ-маршрутизатор
при использовании этого вы можете сделать...
state.go( "route-name", {id: 4});
намного лучше, чем встроенная служба маршрутизации
Самый проголосовавший ответ беспокоит!