【发布时间】:2017-09-28 21:29:49
【问题描述】:
我正在创建一个简单的应用程序,允许登录、恢复密码和为登录用户执行一些其他操作。
我也在使用 Vue-Router。我想创建 3 种不同类型的路线:
- 只允许登录用户(例如:更改密码)
- 仅允许未登录的用户使用(例如:恢复密码)
- 允许所有人使用(例如:主页)
我有两个函数在所有路由之前调用
router.beforeEach(Authentication.OnlyLoggedAllowed)
router.beforeEach(Authentication.OnlyNotLoggedAllowed)
如果可能的话,我还想登录用户(AJAX 调用 API)。为了使用它,我尝试添加代码 BEFORE route.beforeEach(...)
import Vue from "vue"
import VueRouter from "vue-router"
import VueResource from "vue-resource"
...
Authentication.TryLogin.bind(Vue)();
...
router.beforeEach(Authentication.OnlyLoggedAllowed)
router.beforeEach(Authentication.OnlyNotLoggedAllowed)
new Vue({
router
}).$mount("div#application")
将函数TryLogin() 添加到router.beforeEach(..) 是否愚蠢?每次页面更改后的 AJAX 调用并不是很聪明。
但我有问题,因为我的TryLogin() 函数中的this.$http 返回undefined。
或者,如果没有其他方法,也许我应该使用原始 AJAX 调用。
毕竟我会让这个调用同步。
【问题讨论】:
标签: vue.js vuejs2 vue-router