Укажите конкретные правила и перенаправления

Возможно ли в Angular UI иметь правило, которое могло бы привести к перенаправлению из одного состояния в другое до разрешения и загрузки контроллера состояний?

Допустим, у меня есть следующее:

$stateProvider.state('questions', {
    url: '/questions/',
    resolve: {
        getAllTheData: questionResolveFunction
    }
}).state('questions.page1', {
    url: 'page1',
    views: {
        'questionView': {
            templateURL: 'template.html',
            controller: 'Page1Ctrl'
        }
    }   
}).state('questions.page2', {
    url: 'page2',
    views: {
        'questionView': {
            templateURL: 'template.html',
            controller: 'Page2Ctrl'
        }
    }
}); 

Пользователь может выбрать переход на страницу 2. Однако я не хочу, чтобы он просматривал страницу 2 до тех пор, пока он не завершит страницу 1. Необходимая информация для определения того, могут ли они просматривать эту страницу, приходит из разрешения getAllTheData в родительском состоянии, следовательно, я не могу использовать универсальный $urlRouterProvider.rule(), потому что, если кто-то перейдет непосредственно в это состояние извне приложения, он не будет иметь представления о данных при первом вызове. Это результат, который я хочу:

index.html / questions / page2 -> Завершенная страница 1 = true -> перейти на страницу 2
index.html / questions / page2 -> Завершенная страница 1 = false -> перейти на страницу 1 (даже не пытайтесь разрешить или загрузить страницу 2)

Приведенный пример является очень упрощенной версией проблемы, но должен охватывать все, дайте мне знать, если это не так. Заранее спасибо за помощь.

0 ответов

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