Совместное использование области углового Ui-маршрутизатора при изменении состояния

app.js

.state('stats',{
        url:'/stats/:id',
        //abstract : true,
        controller : 'statsController'
        //controllerAs: 'statsDetails',
        //templateUrl : 'app/templates/statsDetails.html'
    })
        .state('details',{
            url : '',
            controller : 'statsController'
            //name : 'stats'
            //templateUrl : 'app/templates/statsDetails.html'
        })

statsController.js

app.controller('statsController',function($scope,$state,StatsFactory){

//FOR PARENT STATE CALL GET BASIC DETAILS
if($state.current.name == "stats"){
    $scope.id_campaign = $state.params.id;
    StatsFactory.getOptCampaign($scope.id_campaign).then(function(data) {
        $scope.OptCampaignDetail = data.data[0];

        StatsFactory.getRemList($scope.OptCampaignDetail.key_campaign)
        .then(function(data){
            $scope.remList = data.data;
            $state.go('details'); //cannot use getAll
            console.log($state);
        });

    });
}

//FOR AL  DETAILS WITH REMUNARETION LIST
if($state.current.name == 'details'){
    console.log($state.current.name);
    console.log($scope.remList);

}

});

внутри состояния "детали" я не могу получить родительскую переменную области видимости. Я пытался также с абстрактным состоянием, но не смог получить доступ к $ scope.remList. Пожалуйста, дайте мне несколько советов, я сложил здесь утром. Кстати, я новичок в угловая

1 ответ

Если вам нужны только данные, вы можете передать их через $state.go:

$state.go('details', {remList: $scope.remList});

И в вашем app.js:

.state('stats',{
        url:'/stats/:id',
        //abstract : true,
        controller : 'statsController'
        //controllerAs: 'statsDetails',
        //templateUrl : 'app/templates/statsDetails.html'
    })
        .state('details',{
            url : '',
            controller : 'statsController',
            params: {remList: null} //default param
            //name : 'stats'
            //templateUrl : 'app/templates/statsDetails.html'
        })

Вы можете получить к нему доступ позже с помощью $stateParams.remList.

Другие вопросы по тегам