2016-05-23 1 views
3

В контроллере я звоню:

$state.go("myState", $scope.urlParams); 

$scope.urlParams может, содержит один или несколько Params. (Динамическая)

Мой $stateProvider конфигурации, как это:

url: '/myPage?param1&param2&param3&param4' 

Теперь давайте рассмотрим пример, чтобы проиллюстрировать мою проблему:

я загружаю «MYPAGE» впервые с помощью:

$state.go("myState", $scope.urlParams); 

с $scope.urlParams = {'param1' : 111 , 'param2' : 222};

My URL выглядит как этот ..../myPage?param1=111&param2=222

Сейчас я уже на 'Моей странице', но я использую это время:

$state.go("myState", $scope.urlParams); 

с $scope.urlParams = {'param1' : 111};

Моя проблема есть, мой URL еще выглядит например ..../myPage?param1=111&param2=222

Но я хочу, чтобы мой URL-адрес выглядел так:

..../myPage?param1=111 

ответ

2

На второй раз, вы должны изменить свой код:

$state.go("myState", $scope.urlParams, {inherit: false}); 

$state.go вызовов $state.transitionTo внутренне, но автоматически устанавливает параметры { location: true, inherit: true, relative: $state.$current, notify: true }.

И свойство inherit, когда установлено значение true, наследует параметры URL из текущего URL. Вот почему вы получаете предыдущие параметры в URL-адресе.

См. docs.

+1

Он отлично работает! – Emidomh

-1

Вы должны сделать это с: {reload:true} свойствами, как и что:

$state.go("resultSearchArticle", $scope.urlParams, {reload : true}); 
0

Установите свойство inherit в false в параметре $ state.go().

$state.go("myState", $scope.urlParams, {inherit: false}); 

По умолчанию он является истинным и наследует параметры url от вашего текущего URL-адреса.

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