My team encountered a similar issue, but we were able to find a solution by leveraging certain internal aspects of ui-router. While this workaround may be subject to potential changes in future versions of angular, the following function proved useful for us:
function customizedStateInfo(state, $current) {
state = _.extend({}, state);
var resolveData = $current.locals.resolve.$$values;
state.params = resolveData.$stateParams;
state.resolve = _.omit(resolveData, '$stateParams');
state.includes = $current.includes;
return state;
}
This code snippet retrieves the parameters, includes, and all resolved data objects. We implemented it in our callback like this:
$scope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
toState = customizedStateInfo(toState, $state.$current);
var person = toState.resolve.person;
}
I trust this information proves helpful in your situation!