Ситуация
Я строю СПА с Vue. Есть всплывающие уведомления, сделанные с помощью Vue -Noty (https://github.com/renoguyon/vuejs-noty).
У меня есть действие vuex, проверяющее статус сеанса, если он обнаруживает, что сеанс истек , будет отображаться уведомление («Срок действия вашей сессии истек»). Теперь я хочу добавить ссылку («Войдите здесь»), но я столкнулся с проблемой
Это возможно добавить теги <a>
к уведомление. они тоже работают нормально.
но Vue SPA не любят простые <a>
теги, конечно ...
Мне нужен <router-link>
. но это не «просто» работает, его нужно извлечь из файла. vue, чтобы сгенерировать <a>
, который работает для одностраничной навигации.
Noty CAN обрабатывать теги, но если я просто добавлю его в Noty, например
this._vm.$noty.error('Your Session has expired, please <router-link to="/login">log in again</router-link>.')
, он, конечно же, выйдет как буквальный тег <router-link>
, который не будет работать.
Следующей моей мыслью было поместите туда <a>
с onClick="this.$router.push('/login')"
Конечно, это тоже не работает, потому что в простом элементе DOM нет this
.
Следующей моей мыслью было : возможно я смогу получить доступ к vue роутеру через window.document
, но я не нашел способа сделать это
Вопрос
Как мне вызвать метод $router.push
из за пределами компонента или экземпляра vue из «простой модели DOM»?