尝试使用字符串+变量

时间:2019-03-27 13:06:58

标签: javascript vue.js nuxt.js vue-meta

我正在使用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

我在这里想念什么?

3 个答案:

答案 0 :(得分:1)

尝试使用功能而不是对象作为头部。 更改

head: {
  ...
},

head () {
  return {
    ...
  }
}

答案 1 :(得分:0)

不是将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>

答案 2 :(得分:0)

metaInfo() {
        return {
            title: this.pageTitle,
        }
    }