如何在AngularJS中定义默认路由?

时间:2019-01-07 22:14:17

标签: angularjs angular-ui-router

我试图在angularjs到达以下网址时定义默认路由

http://localhost:62831/#/

默认路由应转到下面的主页。

http://localhost:62831/

如何使用$ urlRouterProvider定义它?下一行似乎没有什么区别。

$urlRouterProvider.otherwise('/');

有什么建议吗?谢谢!

 appl.config(['$stateProvider', '$urlMatcherFactoryProvider', '$locationProvider', '$urlRouterProvider',
    function ($stateProvider, $urlMatcherFactoryProvider, $locationProvider, $urlRouterProvider) {

        $urlMatcherFactoryProvider.caseInsensitive(true);

        $stateProvider
            .state('home', {
                url: '',
                templateUrl: 'search',
                controller: 'applCtrl'
            })
            .state('person', {
                url: '/person',
                templateUrl: 'Person',
                controller: 'applPersonCtrl'
            })

        $urlRouterProvider.otherwise('/');

        $locationProvider.hashPrefix(''); //it defaults to ! after angularjs 1.5

    }]);

1 个答案:

答案 0 :(得分:1)

您可以在网站的网址上进行匹配(以/结尾),并按如下所示明确进入首页状态,同时还具有未找到的网址条件:

$urlRouterProvider.otherwise(function ($injector, $location) {
    var $state = $injector.get('$state');
    if ($location.$$url === '' || $location.$$url === '/') {
        $state.go('home');
        return;
    }
    $state.go('notFound'); // some custom not found page
});