2016-08-01 7 views
0

Возможно ли передать параметр на маршрут, который не записывается в историю браузера?aurelia router - передать один временной параметр (param не регистрируется в истории браузера)

У меня есть требования

  • где страница должна сохранить свою предыдущую информацию (когда пользователь покидает), который я совершающий путем хранения данных в виде отдельного вида-модели.

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

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

/ThePageInQuestion?refresh=true

и они уйдете и нажмите кнопку назад, браузер будет вернуться к своей истории, которая будет URL выше, и страница обновится. Конечно, это не то, как он должен работать, поскольку, когда они нажимают кнопку «Назад», он должен вернуть их с сохраненными настройками. Мне нужен способ перейти на маршрут и передать {refresh: true} в качестве параметра, но не сохранить его в истории браузера.

Возможно ли это с маршрутизатором aurelia?

Если нет, возможно, я могу вручную манипулировать историей браузера, чтобы удалить это из URL-адреса?

Заранее спасибо.

ответ

0

У вас может быть 2 шаблона, один с кешированным контентом и один без кеша.
Использование кеша в теге META.

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 

Или попробуйте использовать ваниль JS

history.go(number|url) 
0

Вот решение, которое я придумал:

attached() { 
     window.history.replaceState(null, 'new state name', '/route-minus-one-time-params'); 
    } 

Идея заключается в том, чтобы заменить историю браузера с маршрута текущей страницы минус то, параметры, которые вы не хотите хранить в истории браузера. Это необходимо сделать при подключенном обратном вызове (если вы попытаетесь сделать это в активированном обратном вызове, это не сработает, поскольку маршрутизатор еще не вызвал window.history.pushState()).

0

Я уже встречал эти требования, но не использовал refresh=true для этого. При изменении маршрута и обратном нажатии кнопки вы снова вызываете свои модели просмотра, чтобы вы могли проверить данные и загрузить их.

Вот две ссылки, которые должны помочь вам:

Aurelia Documentation regarding routing and additional data

Sharing data with a service

+0

Не уверен, что вы поняли вопрос (потому что я не понимаю вашего ответа). Проблема заключается не в том, как хранить данные за время жизни модели представления (это вопрос, который звучит так, как будто вы отвечаете). – pQuestions123