, , , , $routeProvider resolve.
( ) :
"" :
resolve $routeChangeSuccess.
, .
, .
, trashCtrl ( resolve), , .
, , , , .
!
< > :
"" , $routeChangeError ( $routeChangeSuccess). , , , - , $routeChangeSuccess .
>
:
app.controller('trashCtrl', function ($scope, prevRoutePromiseGetter) {
prevRoutePromiseGetter().then(function (prevRoute) {
$scope.prevRoute = prevRoute || 'nowhere';
});
});
resolve:
resolve: {
prevRoutePromiseGetter: function ($q, $rootScope) {
var deferred = $q.defer();
var dereg = $rootScope.$on('$routeChangeSuccess',
function(evt, next, prev) {
dereg();
deferred.resolve((prev.originalPath || '').substr(1));
}
);
return function () {
return deferred.promise;
};
}
}
. .