Установить активный класс в роутере-ссылка вю, когда дополнительный param в родительский маршрут

Установить активный класс в роутере-ссылка вю, когда дополнительный param в родительский маршрут

28.01.2020 08:29:35 Просмотров 29 Источник

У меня есть необязательный lang.

Когда я использую маршрут foo в /:lang?/foo, проходящем <a/>param, он совпадает с этим маршрутом и правильно добавляет a langкласс для .router-link-active.

Однако во многих местах моего проекта я не передавал никаких параметров в <a/>, и в global router navigation guard router-linkя устанавливаю beforeEachparam, если никто не передается. В этом случае langне будет добавлять активный класс, так как он не соответствует маршруту, потому что отсутствует param в router-linkprop.

Как я могу заставить логику сопоставления игнорировать этот необязательный параметр для всех маршрутов, поэтому у меня есть langи .router-link-active классы добавил?

Вот jsfiddle, с которым я играл, где я хочу, чтобы первая ссылка была красной.

Ниже приведены соответствующие части:

.router-link-exact-active
  <router-link :to="{name: 'foo'}">/foo</router-link>
  <router-link :to="{name: 'foo', params: {lang: 'en'}}">/en/foo</router-link>
У вопроса есть решение - Посмотреть?

Ответы - Установить активный класс в роутере-ссылка вю, когда дополнительный param в родительский маршрут / Set active class in Vue router-link when optional param in parent route

Oswaldo

28.01.2020 11:47:12

Я получил его, переопределив resolve, так как он также используется в router-linkдля поиска совпадений маршрута соответственно to

Закрыть X