首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CASL Vue -如何在路由保护中访问$can

CASL Vue -如何在路由保护中访问$can
EN

Stack Overflow用户
提问于 2021-03-30 10:27:38
回答 1查看 201关注 0票数 0

我正在构建一个Nuxt应用程序,并尝试创建一个路由守卫。如何在我的Nuxt中间件中访问$can

代码语言:javascript
复制
export default (context) => {
    const { route } = context
    route.matched.some((routeRecord) => {
        const options = routeRecord.components.default.options
        console.log(options)
        // should use $can here
        return true
    })
}

我在nuxt.config.js中导入了以下内容

代码语言:javascript
复制
plugins: [
    { src: '@plugins/vue-can.js' },
]

我将casl作为插件添加到Nuxt $auth模块中:

代码语言:javascript
复制
auth: {
    plugins: [
         '@plugins/vue-casl.js',
    ]
}

这是因为我需要在我的插件中访问$auth.user

除了在我的Nuxt中间件中找不到$abilities$can之外,所有这些都运行得很好。

PS:我说的是这个包:@casl/vue

EN

回答 1

Stack Overflow用户

发布于 2021-03-30 16:30:50

在您的中间件中,$abilities$can应该都可以作为context对象的属性使用,因此您应该能够使用context.$foo访问它们。

如果您看不到它,可能是因为它没有正确地注入。您在nuxt.config.js中注册的插件应该使用inject$can添加到全局vue实例中,并使其作为thiscontext的属性可用。有关更多详细信息,请参阅文档:https://nuxtjs.org/docs/2.x/directory-structure/plugins/#inject-in-root--context

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66863998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档