"Re" разрешает ресурсы с помощью angular ui router без перезагрузки

Я использую следующий код для разрешения ресурса при загрузке основного состояния. Можно ли повторно разрешить ресурс без перезагрузки страницы? Я избегаю перезагрузки, так что пользовательский интерфейс не затрагивается.

    $stateProvider
        .state('main', {
            url: '/',
            templateUrl: 'publicApp/main.html',
            controller: 'MainCtrl as mainCtrl',
            resolve: {
                userData: ["UserApi", function (UserApi) {
                    return UserApi.getUserData().$promise;
                }]
            }
        })


    .controller('MainCtrl', function (userData) {
        console.log(userData.something);
    })

Так как это общедоступный сайт, пользователь может посещать любую страницу без входа в систему, но когда пользователь регистрируется на странице, она должна настраиваться на основе пользовательских данных.

ИЗМЕНИТЬ

Я использую модальный для входа, поэтому состояние не перезагружается после входа в систему, я думал о том, чтобы отправить событие на $rootScope, а затем добавить слушателей в контроллеры, чтобы загрузить их снова. Но это не выглядит хорошо, поэтому я ищу лучший способ.

В настоящее время у меня есть два варианта:

  • Обновить страницу - это повлияет на пользовательский интерфейс, поэтому его последняя опция
  • Бросьте событие для модальности входа и поймайте его в других контроллерах.

Любые лучшие идеи?

Ответ 1

Попробуйте использовать перезагрузку после того, как обещание будет разрешено.

$state.reload();