Не получается получить предыдущие данные о состоянии в Angular JS, когда пользователь нажимает кнопку возврата браузера

0

Я работаю над приложением AngularJs. Моя проблема следующая.

У меня есть отфильтрованные данные с использованием определенных параметров с помощью флажков и переключателей. После фильтрации данных я перешел в другое состояние. Когда пользователь нажимает кнопку "Назад" в браузере, я не могу получить отфильтрованные данные. Вместо этого я получаю обобщенные данные состояния.

Например.

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

пожалуйста, помогите мне с этим..

и это может быть достигнуто, если мы передадим некоторый параметр в URL-адресе состояния во время применения фильтра.. но как добиться этого..??

Может ли кто-нибудь навестить меня на этом?

Теги:
angular-ui-router
angular-ui-router-extras

1 ответ

0
Лучший ответ

Являются ли ваши параметры запроса частью URL? Например, я выполняю пейджинг и фильтрацию в приложении, и мой URL-адрес выглядит следующим образом:

HTTP://локальный: 51923/#/счета/поиск SearchText = счет & PAGESIZE = 25 & PageNumber = 1 & someBool = истина & someBool2 = ложь?

Теперь состояние в интерфейсе UI Router, которое сопоставляется с этим, выглядит так:

.state("accounts.search", {
    url: "/search?searchText&pageSize&pageNumber&someBool&someBool2",
    params: {
        searchText: { value: "", squash: true },
        pageSize: { value: "25", squash: true },
        pageNumber: { value: "1", squash: true },
        someBool: { value: "false", squash: true },
        someBool2: { value: "false", squash: true }
    },
    controller: "accountsController as vm",
    templateUrl: "site/accounts/search/accounts.html",
    data: { pageTitle: "Accounts" },
    resolve: { //...resolve data here... },
    someOtherStuffIfNeeded: { //stuff here} 
    }
})

Взгляните на документацию для ui router, не используя раздел параметров состояния, который объясняет значения по умолчанию и что делает сквош. ВАЖНО отметить, что params являются строками (извещение false - "false"). Надеюсь это поможет.

  • 0
    Нет на самом деле после фильтра, если я нажимаю на просмотр, все состояние результатов изменяется, а затем, если я нажимаю на любой из результатов для подробного описания, а затем я нажимаю кнопку «Назад» в браузере, я не получаю одинаковые результаты ... вместо этого я получаю целый массив список..
  • 0
    Вам нужно иметь параметры фильтра в URL, если вы хотите щелкнуть назад, а затем отфильтровать список. Для этого используйте params (с настройками по умолчанию) в маршрутизаторе пользовательского интерфейса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню