我已經在Angular中編寫了一個Web應用程序的一部分。爲了確保覆蓋所有路由,我想將redirectTo
屬性添加到$routeProvider
,以便將無效路由返回到不使用Angular的Web應用程序的根目錄。
我想:
$routeProvider.otherwise({
redirectTo: '/'
});
但很明顯,在URL的角度控制部分這隻路線,所以用戶會被重定向到像http://app.com/angular-part-of-web-app#
一個URL,而不是http://app.com
,在這裏我希望他們走。
我已經通過具有空白部分充當「404」頁,然後剛剛使用$window
對象控制器,用於重定向到所需的頁解決此工作:
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 = '/';
}]);
然而,這正在引發'太莽撞,必須是更好的方式'的警鐘。在Angular中有更好的方法嗎?
編輯:Angular routes - redirecting to an external site?沒有得出同樣的問題的答案。我打算讓問題開放,而不是將其標記爲重複(現在),就像Angular世界移動得太快一樣,以前的答案可能不再是這種情況。
可能在服務器端處理它。 – tymeJV
我也在尋求解決這個問題。我正在將我的應用程序切換到Angular,並且仍然有部分仍然來自服務器。需要找到一種方法來連接角部分和非角部分 – Michael