簡體   English   中英

Nuxt.js 在布局文件中的元屬性在中間件中不起作用

[英]Nuxt.js's meta property in layout file is not work in middleware

Nuxt.js 在布局文件中的元屬性不起作用。

我想創建一個判斷用戶角色滿足布局角色的中間件。

所以,我寫布局組件。 這包括允許的角色( roles )。它在下面。

layout/default.vue

<template>
  <v-app class="primary">
    <v-content>
      <nuxt />
    </v-content>
  </v-app>
</template>

<script>
export default {
  middleware: ['authorized'],
  meta: {
    roles: ['driver']
  },
}
</script>

我也寫頁面組件。

pages/sample.vue

<template>
  <div>hoge</div>
</template>

<script>
export default {
  layout: 'default.layout',
  data() {
    return {}
  }
}
</script>

我也寫中間件。 它在下面。

middleware/authorized.js

export default async function({ redirect, store, route}) {
  let userInfo = null
  userInfo = await store.getters['auth/userInfoObject']

  // Search metaData that has meta property.
  const metaDataIncludeRole = route.meta.filter(metaObject => {
    return 'roles' in metaObject
  })

  // Judge user's role includes it.
  const isAllowed = metaDataIncludeRole[0].roles.some(role => {
    return role === userInfo.roleType
  })

  if (!isAllowed) {
    // Redirect any 
  }
}

但是在中間件中,

route.meta在下面。

Array []

為什么不包括角色屬性? 請告訴我。

用於參考的網址如下

https://github.com/nuxt/nuxt.js/issues/1687

https://github.com/nuxt/nuxt.js/issues/3751

從任何組件或布局:

this.$nuxt.$options.context.route.meta;

抱歉。

布局文件中似乎不能使用元屬性。

我從以下 PR 中確認。

僅來自頁面,進入 $route.meta 數據

https://github.com/nuxt/nuxt.js/issues/3751

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM