砌体不是一种功能

时间:2016-12-28 21:26:09

标签: vue-component vue.js vuejs2

我正在尝试在我的应用程序中使用砌体。以下是我的组件模板。

<template>
    <div>
        <section class="section">
            <div class="container">
                <div class="row team">
                    <div class="col-md-4 col-sm-6 member" v-for="team in teamMembers">
                        <div class="team__item">
                            <div class="team__info">
                                <h4>{{team.name}}</h4>
                                <small>{{team.title}}</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>
    </div>
</template>

<script src="https://unpkg.com/masonry-layout@4.1.1/dist/masonry.pkgd.min.js"></script>

<script>
    export default {
        data() {
            return {
                teamMembers: []
            }
        },
        mounted() {
            this.getTeamMembers();
        },
        methods : {
            getTeamMembers : function() {
                this.$http.get('teamMembers').then(response =>{
                    // console.log(response);
                    if(response.data.status=200) {
                        this.teamMembers = response.data.teamMembers;
                        this.$nextTick(function() {
                            var $container = $('.team');

                              $container.masonry({
                                columnWidth: '.member',
                                itemSelector: '.member'
                              }); 
                        })
                    }
                })
            }
        }
    }
</script>

每当渲染视图时,我都会收到以下错误。

TypeError: $container.masonry is not a function
你能告诉我这里我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

您可以通过this.$el获取vue组件DOM元素。所以你可以做到以下几点:

$(this.$el.querySelector('.team')).masonry({
                            columnWidth: '.member',
                            itemSelector: '.member'
                          }); 

但请记住,只要您的组件不是Fragment Instance,即它只有一个根HTML标记,它就有效。

您需要在index.html中添加以下脚本行,以便正确加载。

<script src="https://unpkg.com/masonry-layout@4.1.1/dist/masonry.pkgd.min.js"></script>
相关问题