想要在角度js中重定向到主页,如果用户键入错误的路径并显示正确的URL

时间:2016-10-17 10:41:40

标签: javascript angularjs

如果我们强制编辑URL,则网页会显示具有不同URL的相同内容。 例如,http://www.example.com/#http://www.example.com/#/abc提供相同的内容。 想要在主页上重定向编辑的URL,每次都在URL中显示正确的路径。

.state('system.confirmation', {
            url: '/confirmation',
            templateUrl: 'tpls/views/system/confirmation/confirmation.html',
            controller: 'ConfirmationController',
            controllerAs:'confirmationController',

            }

3 个答案:

答案 0 :(得分:0)

 $rootScope.$on('$routeChangeStart', function (event, next, last) {
       console.log(event, next, last)// get all info, about current controller
       $scope.someFunction();
    });

你可以做任何事情,在改变任何路线之前,这个功能会打电话,你可以检查你正在谈论的事情。

答案 1 :(得分:0)

您正在寻找的是otherswise()功能。请尝试在config函数中添加此内容:

$urlRouterProvider.otherwise('/')

这将确保所有未被捕获的路线都被重定向到您的基本网址。

答案 2 :(得分:0)

试试这个

  App.config(function($routeProvider) {
    $routeProvider

        // route for the home page
        .when('/index', {
            templateUrl : 'views/site/index.html',
            controller  : 'indexController'
        })

        // route for the about page
        .when('/about', {
            templateUrl : 'views/site/about.html',
            controller  : 'aboutController'
        })
        .when('/404', {
            templateUrl : 'views/site/404.html',
            controller  : '404Controller'
        })
        .when('/signup', {
            templateUrl : 'views/site/signup.html',
            controller  : 'signupController'
        })
        .when('/forgotPass', {
            templateUrl : 'views/site/forgotPassword.html',
            controller  : 'forgotPassController'
        })              
        .when('/login', {
            templateUrl : 'views/site/login.html',
            controller  : 'loginController'
        }).otherwise({
                redirectTo: '/404'
            });;
});


 App.controller('404Controller',['$scope', function($scope) {
    $scope.message = 'Page not found 404.';
}]);