Angualar UI-роутер автоматически меняет маршрут

Я получаю проблему во время изменения углового состояния

Моя конфигурация состояния выглядит так:

 function($stateProvider) {
    $stateProvider
        .state('monetization', {
            url: '/monetization',
            templateUrl: 'app/modules/monetization/monetization.html',
            controller: 'MonetizationCtrl'
        })
        .state('monetization.configurationGeneral', {
            url: '^/monetization/configuration/general',
            templateUrl: 'app/modules/monetization/configuration/general/general.html',
            controller: 'MonetizationConfigurationGeneralCtrl',
        })
        .state('monetization.configurationVersion', {
            url: '^/monetization/configuration/version',
            templateUrl: 'app/modules/monetization/configuration/version/version.html',
            controller: 'MonetizationConfigurationVersionCtrl',
        })
        .state('monetization.categorySearch', {
            url: '^/monetization/configuration/categorySearch',
            templateUrl: 'app/modules/monetization/configuration/category/categorySearch.html',
            controller: 'MonetizationCategorySearchCtrl',
        })
        //Provider Configuration
        .state('monetization.providerList', {
            url: '^/monetization/provider/list',
            templateUrl: 'app/modules/monetization/provider/providerList.html',
            controller: 'MonetizationProviderListCtrl',
        })
        .state('monetization.providerDetails', {
            url: '^/monetization/providerDetails/:providerId',
            templateUrl: 'app/modules/monetization/provider/providerHistory.html',
            controller: 'ProviderHistoryCtrl',
            params: {
                providerId: null
            }
        });
}

Меня автоматически перенаправляют с moneization.categorySearch на montetification.providerList

Я не имею никакой подсказки, пожалуйста, помогите..

1 ответ

Решение

Я могу подтвердить, что с вашим состоянием в порядке, как есть - функция REDIRECT не включена. Таким образом, это должно быть в другом месте - не в $stateProvider конфигурации.

Проверьте этот плункер, чтобы увидеть, что все эти ссылки работают должным образом:

<a href="#/monetization">
<a href="#/monetization/configuration/general">
<a href="#/monetization/configuration/categorySearch">
<a href="#/monetization/provider/list">

<a ui-sref="monetization">
<a ui-sref="monetization.configurationGeneral">
<a ui-sref="monetization.categorySearch">
<a ui-sref="monetization.providerList">

Проверьте это здесь

Обратите внимание, что небольшая проблема, которую я вижу выше, это опечатка "monteization.providerList"

Меня автоматически перенаправляют с moneization.categorySearch на montetification.providerList

который должен быть moneization.providerList (не monte...), но это не должно быть связано с этой проблемой

Предложение, внимательно проверьте все event крючки как:

$rootScope.$on('$stateChangeStart', function(evt, to, params) {

    ...
    $state.go('monetization.providerList')

});

(проверьте, например, это: перенаправить состояние в подсостояние по умолчанию с UI-Router в AngularJS)

А также. При установке на провайдера URL

$urlRouterProvider.when('/monetization/configuration/categorySearch'
                      , '/monetization/provider/list');

(проверьте, например: Angular UI-Router $ urlRouterProvider. Когда я не нажимаю , когда он не работает)

Другие вопросы по тегам