Użycie $ routeProvider do przekierowania do tras poza Angular

Napisałem część aplikacji internetowej w Angular. Aby zapewnić pokrycie wszystkich tras, chciałem dodaćredirectTo własność do$routeProvider, tak, że nieprawidłowe trasy są zwracane do katalogu głównego aplikacji internetowej, która nie używa Angular.

Próbowałem:

$routeProvider.otherwise({
    redirectTo: '/'
});

ale oczywiście to tylko trasy w kontrolowanej części adresu URL, więc użytkownicy będą przekierowywani do adresu URL takiego jakhttp://app.com/angular-part-of-web-app#, zamiasthttp://app.com, gdzie chciałbym, żeby poszli.

Pracowałem nad tym, mając puste miejsce do działania jako strona „404”, a następnie kontroler, który po prostu używa$window obiekt do przekierowania na żądaną stronę:

routes.js

// Redirect to site list.
$routeProvider.when('/404', {
    templateUrl: '/partials/404.html',
    controller: 'RedirectCtrl'
});

// Redirect to the 404 page.
$routeProvider.otherwise({
    redirectTo: '/404'
});

controllers.js

// Controller to redirect users to root page of site.
.controller('RedirectCtrl', ['$scope', '$window', function ($scope, $window) {

    $window.location.href = '/';
}]);

Jednak budzą dzwonki alarmowe „zbyt hacky, must be better”. Czy jest lepszy sposób na zrobienie tego w Angular?

EDYTOWAĆ:Kątowe trasy - przekierowanie na zewnętrzną stronę? nie dał odpowiedzi na to samo pytanie. Pozostawię moje pytanie otwarte, zamiast oznaczyć je jako duplikat (na razie), ponieważ świat Angulara porusza się tak szybko, że poprzednia odpowiedź może już nie być.

questionAnswers(5)

yourAnswerToTheQuestion