【发布时间】:2018-02-07 07:02:12
【问题描述】:
我目前正在开发一个使用vue.js 和vue-material 的网页。我做了一个类似的菜单,比如this。
我的目标是,其中一个菜单项将用户重定向到另一个页面。 我试过 official doc 说:
<md-list-item @click="$refs.sidebar.toggle(); this.$router.push('/company');">
<md-icon>start</md-icon> <span>Starred</span>
</md-list-item>
但我收到了一条 vue-warn 消息:
[Vue warn]: Error in event handler for "click": "TypeError: this.$router is undefined"
我尝试了所有版本:$router.push('/company');,router.push('/company');,this.router.push('/company'); 但还是不行。
另一方面,我尝试用router-link 标签包围md-list-item,但效果不佳。
如何定义内联路由(在@click 部分)?
感谢提前回复!
更新:
app.js 中的我的 vue-route 配置:
import VueRouter from 'vue-router'
Vue.use(VueRouter)
...
const routes = [];
const router = new VueRouter({
routes
})
const app = new Vue({
el: '#app',
beforeUpdate: function() {
console.debug('app rerendering');
console.debug(this);
},
beforeCreate: function() {
console.debug('app creating');
console.debug(this);
},
router,
});
但问题是一样的...如果我尝试调用这个。$router.push('/company') 我得到了同样的错误:TypeError: this.$router is undefined
【问题讨论】:
-
你能发布你的路由器配置吗?更重要的是,您是否将此
router配置添加到您的Vue根实例中? -
啊啊,这表明我在这个 vue 世界里是个新手。我没有做路由器配置,我以为 vue 组件会变成一个 链接,或者类似的东西。你能告诉我什么是最佳做法,或者你能链接一些教程吗?
-
@EvaldoBratti 我更新了问题!
标签: javascript routing vue.js vuejs2 vue-material