Как определить маршрут по умолчанию в AngularJS? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь определить маршрут по умолчанию, когда angularjs достигает указанного ниже URL

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 голосов
/ 08 января 2019

Вы можете сопоставить URL-адрес вашего сайта (с конечным символом /) и явно перейти в исходное состояние следующим образом, также имея условие не найденного URL:

$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
});
...