Use resolve UI routers to check if route parameters are missing.
.state('dashboard', {
url: '/dashboard/:userId',
templateUrl: 'dashboard.html',
controller: 'DashboardController',
resolve: function($stateParams, $location){
if ($stateParams.userId === undefined) {
$location.path('/somewhere/else');
}
}
})
source
share