【发布时间】:2015-11-17 14:14:48
【问题描述】:
我在使用 vue-router 时遇到了麻烦:)我为路由器创建了一个简单的地图:
module.exports = {
'/': {
component: require('./views/home')
},
'/auth/login': {
component: require('./views/auth/login')
},
'/auth/register': {
component: require('./views/auth/register')
},
'/resumes': {
component: require('./views/resumes')
},
// 404 NotFound
'*': {
component: {
template: "not found"
}
}
};
并将路由器定义为 vue,它可以完美运行。我的主页js代码:
module.exports = {
inherit: true,
template: require('./template.html'),
ready: function() {
if(this.isLoggedIn)
this.$route.router.go('/resumes');
}
};
如果用户登录,我想加载简历页面。 当我在任何情况下使用它或使用 v-link 指令时,它都可以正常工作。 但是如果我在准备好的功能上使用它,它会重复页面。它调用主页并在其上附加第二页。
IMG:http://imageshack.com/a/img540/9409/3DK1ZL.jpg
怎么了?我该如何解决?我正在处理这个问题大约 4 天。请帮帮我。
【问题讨论】:
-
当“ready”触发时,路由器可能没有初始化。您是否尝试过将该代码移至
this.$nextTick()? -
不仅如此,您还可以尝试将 this.$route.router 替换为 this.$router 并使用其他生命周期触发器,例如附加的vuejs.org/api/#attached 或路由器触发器,例如激活或数据vuejs.github.io/vue-router/en/pipeline/activate.html
标签: javascript router vue.js