Попытка установить заголовок страницы Vue Meta, используя строку + переменную
Я использую Vue Meta как часть блогового приложения в проекте, использующем Nuxt JS 2.4.5
У меня возникли проблемы при попытке установить заголовок + переменную из data ()
и я не уверен, что мне не хватает
Я пробовал несколько попыток заставить его работать, перемещать код, используя this
установка вручную, кажется, ничего не работает...
<script>
import BlogsFromJson from '~/static/articles/blogs.json';
export default {
head: {
title: 'My Website: Blog: ' + this.myBlogTitle, // or something else
meta: [
{ hid: 'description', name: 'description', content: 'Read the latest news and articles from Flex Repay UK.' }
]
},
data () {
return {
title: this.$route.params.title,
blog: BlogsFromJson,
myBlogTitle: 'some title'
}
}
}
</script>
Я пытался установить переменную в data ()
и используя это статически.
Это должно дать мне My Website: Blog: some title
Чего мне здесь не хватает?
2 ответа
Решение
Попробуйте использовать функцию вместо объекта для головы. + Изменить
head: {
...
},
в
head () {
return {
...
}
}
Вместо определения metaInfo как объекта, определите его как функцию и получите доступ к нему как обычно:
Post.vue:
<template>
<div>
<h1>{{{ title }}}</h1>
</div>
</template>
ваш сценарий
<script>
export default {
name: 'post',
props: ['title'],
data () {
return {
description: 'A blog post about some stuff'
}
},
metaInfo () {
return {
title: this.title,
meta: [
{ vmid: 'description', name: 'description', content: this.description }
]
}
}
}
</script>
PostContainer.vue:
<template>
<div>
<post :title="title"></post>
</div>
</template>
<script>
import Post from './Post.vue'
export default {
name: 'post-container',
components: { Post },
data () {
return {
title: 'Example blog post'
}
}
}
</script>