gpt4 book ai didi

javascript - 使用 $routeProvider 重定向到 Angular 之外的路由

转载 作者:IT王子 更新时间:2023-10-29 03:10:56 26 4
gpt4 key购买 nike

我已经用 Angular 编写了 Web 应用程序的一部分。为了确保覆盖所有路由,我想向 $routeProvider 添加一个 redirectTo 属性,以便将无效路由返回到 Web 应用程序的根目录,这不会'使用 Angular。

我试过:

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

但显然这只会在 URL 的 Angular 控制部分进行路由,因此用户将被重定向到类似 http://app.com/angular-part-of-web-app#,而不是 http://app.com,这是我希望他们去的地方。

我已经解决了这个问题,方法是让一个空白部分充当“404”页面,然后使用一个仅使用 $window 对象重定向到所需页面的 Controller :

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 世界发展如此之快,以前的答案可能不再如此。

最佳答案

上面的/404 解决方案对我不起作用。然而,这似乎有效

.otherwise({
controller : function(){
window.location.replace('/');
},
template : "<div></div>"
});

附言。我正在使用 Angular 1.2.10

关于javascript - 使用 $routeProvider 重定向到 Angular 之外的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com