vue-router:如何检查当前路由是路由还是其子路由之一?

时间:2019-06-03 10:03:46

标签: vue.js vue-router

我正在包装router-link以添加一些功能。

我需要检查当前路线是一条路线还是一条路线的子路段。

类似以下内容

  

我知道它不起作用,因为: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 个答案:

答案 0 :(得分:2)

使用$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>

     

一个包含路线记录的数组,用于当前路线的所有嵌套路径段。