隐藏路线

时间:2019-04-02 06:37:09

标签: vue.js vue-router privacy

我的Vue路线为

const ifAuthenticated = (to, from, next) => {
  if (store.getters.isAuthenticated) {
    next()
    return
  }
  next('/login')
}

const checkAgentPermissions = () => {
  return false
}

export const routes = [
 {
  path: '/users',
    beforeEnter: ifAuthenticated,
    component: Layout,
    meta: { title: 'Agent Onboarding', icon: 'address-card' },
    hidden: checkAgentPermissions,
    children: [
      {
        path: '',
        name: 'Users',
        component: () => import('@/views/users/index.vue')
      },
      {
        .....some more childrens
      }
    ]
 }
]

但通过函数调用时,隐藏总是正确的。 如果我将从checkAgentPermissions隐藏的选项更改为false

 hidden: false // works perfectly

为什么函数不返回false,实际上我需要在fn中进行一些检查,然后根据需要返回true / false。

forEach路线,我通过检查hidden是否为true / false来在vue组件中渲染它们。

1 个答案:

答案 0 :(得分:1)

尝试执行隐藏的功能:

hidden: checkAgentPermissions(),
children: [
...