Задать вопрос
Aizlee
@Aizlee
Веб разработчик

Почему Angularjs ui-sref не работает пока не перезагружу страницу или не нажму на другую ссылку?

Есть ссылки, по клику на них открывается модальное окно. Первое нажатие отрабатывает нормально, но после закрытия окна, ссылка не кликабельна до перезагрузки страницы или пока не нажму на соседнею ссылку.
Сама ссылка:
<a ui-sref="userState({userId: data.id })" data-ui-sref-opts="{reload:false}" data-toggle="modal">View</a>

Роут:
.state("userState", {
                parent: "app.new",
                params: {
                    usertId: 0
                },
                onEnter: [
                    "$modal",
                    function($modal) {
                        $modal.open({
                            controller: "UserModalController",
                            templateUrl: 'users/modals/user-modal.html',
                        }).result.finally(function() {
                            $stateProvider.go('^');
                        });
                    }
                ]
            });

Не использовал ng-click по причине того, что этот блок добавляется динамически(директива TagInput).
  • Вопрос задан
  • 738 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Академия Eduson
    Frontend-разработчик
    9 месяцев
    Далее
  • Учебный центр IBS
    WEB-022 Разработка на Angular. Продвинутый уровень
    1 неделя
    Далее
Решения вопроса 2
AMar4enko
@AMar4enko
Потому что ui-router оперирует состояниями. Когда вы щелкаете по ссылке, вы переходите в состояние app.new.userState, переход в которое у вас сопровождается открытием модального окна. Но после того, как вы закрыли модальное окно, вы остаетесь в этом же состоянии, и повторный клик перехода на уже активное состояние не вызывает.
Посмотрите в сторону ui-router-extras, если вам нужно модальные окна к состояниям привязывать.

P.S. либо активируйте предыдущий/родительский стейт по закрытию модалки
Ответ написан
Комментировать
Aizlee
@Aizlee Автор вопроса
Веб разработчик
Решил проблему, изменил роут(забыл добавить $state)
.state("userState", {
                parent: "app.new",
                params: {
                    userId: 0
                },
                onEnter: [
                    "$modal", "$state"
                    function($modal,$state) {
                        $modal.open({
                            controller: "UserModalController",
                            templateUrl: 'users/modals/user-modal.html',
                        }).result.finally(function() {
                            $state.go('^');
                        });
                    }
                ]
            });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы