Мой индекс маршрута определяется как:VueJS 2, маршрутизатор охранник
{ path: '/', adminOnly: false, component: Main },
Есть ли способ получить доступ к свойству «adminOnly»?
Там, кажется, нет никакого способа сделать это в этом блоке кода:
routes.beforeEach((to, from, next) => {
console.log(to)
next();
});
Мои маршруты Файл:
import Vue from 'vue';
import VueRouter from 'vue-router';
import Main from '../components/Main.vue';
import About from '../components/About.vue';
const NotFoundException = {
template: '<div>Route Was Not Found</div>'
};
Vue.use(VueRouter);
const routes = new VueRouter({
mode: 'history',
hashbang: false,
linkActiveClass: 'active',
base: '/jokes',
routes: [
{ path: '/', adminOnly: false, component: Main },
{ path: '/about', adminOnly: false, component: About },
{ path: '*', adminOnly: false, component: NotFoundException }
]
});
routes.mode = 'html5';
routes.beforeEach((to, from, next) => {
// CHECK IF ADMINONLY EXISTS
next();
});
export default routes;
я получить решение, добавив подмешать в adminOnly.js который имеет следующий код: Но опять же, mixin должен быть добавлен к каждому компоненту, если я должен был перенаправить пользователя на страницу входа, если не admin. // Просто тест var isAdmin = false;
export default {
beforeRouteEnter (to, from, next) {
if(!isAdmin) {
next((vm) => {
vm.$router.push('/login');
});
}
}
}
У вас есть опечатка: 'запись .meta.requiresAuth' в 'beforeEach()' hook, должен быть 'record.meta.adminOnly' в этом случае. – branquito
Пожалуйста, проверьте документы –
В документах у них есть свойство с именем 'requireAuth' на метаобъекте, в то время как в вопросе OP здесь используется' adminOnly', так как это так, ваш крючок не будет работать. – branquito