我目前正在开发一个使用vue.js和vue-material的网页。我做了一个类似的菜单。
我的目标是,其中一个菜单项将用户重定向到另一个页面。我试过作为官方文档说:
<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');
但仍然无法正常工作。
另一方面,我尝试将md-list-item
withrouter-link
标签包围,但效果不佳。
如何定义路由内联(在该@click
部分中)?
感谢您提前回复!
更新:
我的vue-route
配置app.js
:
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