如何在axios请求(VueJs)之后设置元og:图像?

时间:2018-04-24 07:18:26

标签: vuejs2 vue-meta

我有一个vue组件,在下载后立即发送axios请求。 我也使用vue-social-sharing,我需要og:image meta,但是我的图像在axios响应后返回。

<template>
    <div class="container">
        <div v-if="collageSrc" class="col-md-12 collage">
            <img class="img-responsive" :src="this.collageSrc"/>


            <social-sharing>
                <div>
                    <network network="facebook">
                        <i name="fa fa-facebook"></i> Facebook
                    </network>
                    <network network="twitter">
                        <i class="fa fa-twitter"></i> Twitter
                    </network>
                </div>
            </social-sharing>

        </div>
        <div class="col-md-12 collage" v-else>
            <h1>Your image is preparing...</h1>
        </div>
    </div>
</template>


<script>

    export default {
        name: 'collage',
        props:['id'],
        data: function(){
            return {
                collageWaiter: this.getCollageSrc(),
                collageSrc: '',
                url : '',
            }
        },
        metaInfo: {
            title : 'Compliment Genarator Collage',
            meta: [
                {charset : 'utf-8'},
                {
                    'vmid' : 'og:image',
                    'property' : 'og:image',
                    //'content' : this.collageSrc
                }
            ]
        },
        methods:{
            getCollageSrc(){

                const self = this;

                axios.get('/api/generate?id='+this.id)
                    .then(function(result){
                        self.collageSrc = result.data;
                        self.url = "http://compgen.ru/collage/" + self.id;
                    });
            }
        }
    }
</script>
你可以看到,prop&#39; collageSrc&#39;在axios请求之后变得可用。我如何动态地将这个道具包括在元og:image?

1 个答案:

答案 0 :(得分:0)

metaInfo定义为函数,而不是对象:

metaInfo() {
  return {
    meta: [
      { vmid: 'og:image', property: 'og:image', content: this.collageSrc }
    ]
  }
}

https://vue-meta.nuxtjs.org/faq/component-props.html