3

我在使用 Nuxt JS 2.4.5 的项目中使用 Vue Meta 作为博客应用程序的一部分

我在尝试设置标题+变量时遇到了一些麻烦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

我在这里能错过什么?

4

3 回答 3

4

尝试使用函数而不是对象作为头部。改变

head: {
  ...
},

head () {
  return {
    ...
  }
}
于 2019-03-27T20:43:13.477 回答
2

与其将 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>
于 2019-03-27T13:11:43.230 回答
0
metaInfo() {
        return {
            title: this.pageTitle,
        }
    }
于 2019-11-21T14:25:02.587 回答