2016-10-11 8 views
0

안녕하세요이 state.go의 stateParams 또는 내가 이것을 시도했지만 변수가 비어있는 두 개의 서로 다른 페이지 사이 AngularJS와의 이전 페이지로 돌아 만드는 방법을 알고 싶은 모든 :AngularJS와 이전 페이지 state.go의 stateParams을 다시

$ctrl.next = function(){ 

     $state.go('modiffili', {object:'test'}); 

    }; 
내 두 번째 페이지의이 컨트롤러 :

(function (angular) { 
'use strict'; 

modiffiliCtrl.$inject=['$state','$stateParams']; 


function modiffiliCtrl($state,$stateParams) { 
    var $ctrl = this; 


    console.log('modiffiliController'); 
    console.log($state.params.object); 
    $ctrl.retour = function() { 
     $state.go('^'); 
} 

내가 rootScope를 사용하지 않을 수 있습니다. 도와 주셔서 감사합니다!

답변

0

이벤트를 듣고 $stateChangeStart 이벤트를 수신하고 이전 상태의 이름과 매개 변수를 저장하여 되돌릴 수 있습니다.

$rootScope.$on('$stateChangeStart', function (event, toState, toStateParams, fromState, fromParams) { 
    $rootScope.previousState = fromState; 
    $rootScope.previousStateParams = fromParams; 
}); 

그리고 당신은

+0

는하지만 내 상사가 내가 rootscope를 사용하지 않으 감사합니다 당신이 그것을 필요로하는 경우에 $state.go($rootScope.previousState, $rootScope.previousStateParams) 를 호출 할 수 있습니다 :/UI 라우터와가 (NG-클릭 previoustate 불가능)? 아니면 유일한 해결책입니까? thanks –

+0

$ rootScope를 '단지'때문에 사용하는 것을 두려워해서는 안됩니다. 모든 이벤트가 결국 착륙 할 수있는 유일한 장소입니다. 나는 그것이 JHipster에서 이런 식으로 진행되었다는 것을 안다. 그래서 꽤 괜찮은 해결책이라고 생각한다. 다른 한편, 나는 그 기능을 가진 ui-router에 addon을 찾았습니다 : [REPO] (https://github.com/christopherthielen/ui-router-extras) [DOCS] (http : // christopherthielen.github.io/ui-router-extras/#/previous) 편집 :이 서비스는 $ rootScope도 사용합니다.) –

+0

향후 방문자에게만 알려주므로이 같은 브로드 캐스트 이벤트는 이제 더 이상 사용되지 않습니다. ui-router의 최근 릴리스에는 포함되어 있지 않습니다. 이러한 이벤트를 사용하려면 프로젝트를 다시 작성하고 상태 이벤트 파일을 포함시켜야합니다. – charliebeckwith