我有一个用vue-router创建的路由。
{
path: '/events/:id',
component: Event,
name: 'Event',
meta: {
title: 'Design Web'
}
},
在“元”中,我为其指定页面名称。
我可以通过以下方式调用页面标题:$route.meta.title
但是现在,我面临一个问题。在页面标题中,我想传递一个变量(事件的名称)。
meta: {
title: $nameOfEvent
}
怎么办?
谢谢
答案 0 :(得分:0)
如果将title属性定义为函数,则可能是这样:
{
meta: { title: route => { /* return custom title based on route, store or anything */ } }
}
和
router.beforeEach((to, from, next) => {
if (to.meta.title) {
document.title = to.meta.title(to);
}
next();
})
Codepen:https://codepen.io/anon/pen/roRmdo?editors=1111(您需要检查内部iframe以查看标题更改)。
或创建指令:
Vue.directive('title', {
inserted: (el, binding) => document.title = binding.value,
update: (el, binding) => document.title = binding.value
})
然后在路由器视图组件上使用该指令:
<router-view v-title="title" ></router-view>
组件:
export default {
data(){
return {
title: 'This will be the title'
}
}
}