Как получить данные конкретного маршрута по имени маршрута в VueJs? - PullRequest
0 голосов
/ 04 октября 2019

В VueJs я всегда могу получить доступ к текущим данным маршрута. но что, если я хочу получить доступ к данным другого маршрута по его имени? Предположим, у меня определены маршруты,

[
    {
        name: "dashboard",
        path: "/",
        component: Dashboard,
        meta: {
            title: "Dashboard",
        }
    },
    {
        name: "login",
        path: "/login",
        component: Login,
        meta: {
            title: "Login",
        }
    }
]

Теперь предположим, что я нахожусь в маршруте на панели инструментовя могу получить доступ к его данным с помощью this.$route, но что, если я хочу получить доступ к метаданным маршрута, названного как логин? есть ли функция, которая вернет мне объект маршрута с именем login?

1 Ответ

0 голосов
/ 04 октября 2019

Вы можете получить доступ к маршруту, используя это. $ Router

this.$router.options.routes[0].meta

Конечно, вы должны выбрать правильный маршрут


ОБНОВЛЕНИЕ

Конечно, вы можете перебирать свой массив:

getRoute: function (routeName) {
  let result = this.$router.options.routes.find(i => i.name === routeName)
  if (result == null) {
    this.$router.options.routes.forEach(element => {
      if (element.children) {
        let route = element.children.find(i => i.name === routeName)
        if (route != null) {
          result = route
        }
      }
    })
  }
  return result
},
...