正如每個應用程序中我有幾條路線。例如(router/index.js
節選):vue.js:路由守衛等待異步值
[{
path: '/reporting',
name: 'Reporting',
component: reporting,
meta: {
adminOnly: true
}
},
...]
正如你可以在路線定義見,訪問reporting
當用戶需要有管理員權限,這在vuex商店的屬性。問題:這個屬性是異步的,當初訪問警衛時當然是錯誤的。我怎樣才能讓我的警衛等待呢?
後衛:
if (to.matched.some(route => route.meta.adminOnly)) {
if (store.getters.userInfo.isAdmin) {
next()
} else {
next('/')
}
} else {
next()
}
如何以及在哪裏獲取此屬性? – Cobaltway
它在init的vuex存儲中完成。 – sandrooco
然後在該登錄操作解決之前,您不應該啓動您的應用程序。隨着行動回覆承諾,你應該很容易。 –