vue-router: как проверить, является ли текущий маршрут маршрутом или одним из его подуровней? - PullRequest
1 голос
/ 03 июня 2019

Я обертываю ссылку на маршрутизатор, чтобы добавить некоторые функции.

Мне нужно проверить, является ли текущий маршрут маршрутом или поддольем маршрута.

Что-то вродеследующий

Я знаю, что это не может работать, потому что: active нужен логический тип, но javascript String.match возвращает массив; это должно объяснить мою цель

:active="$route.name.match('customer_users*')"

В моем router.js я определил, что /customer/{customer_id}/users назван customer_users, а /customer/{customer_id}/users/{user_id} назван customer_users_edit.

Так что я хотел бы иметь возможность установить ": active"в моей обертке для обоих этих маршрутов.

1 Ответ

2 голосов
/ 03 июня 2019

Используйте свойство $route.matched, чтобы узнать, является ли текущий маршрут вашим customer_users или любым из его дочерних элементов.

Например, используя Array.prototype.some()

:active="$route.matched.some(({ name }) => name === 'customer_users')"

См. https://router.vuejs.org/api/#route-object-properties

$ route.matched

тип: Array<RouteRecord>

Массив, содержащий записи маршрута для всех вложенных сегментов пути текущего маршрута.

...