Совместное использование области углового 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.