【发布时间】:2016-12-28 21:26:09
【问题描述】:
我正在尝试在我的应用程序中使用砌体。以下是我的组件模板。
<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
你能告诉我我在这里做错了什么吗?
【问题讨论】:
-
我不确定您是否可以在单个文件组件中包含类似的
script。我认为您需要通过 npm 安装 masonary,然后在您的主 js 文件中要求它以授予 vue 访问它的权限。 -
不能在单文件组件中间放置这样的脚本标签
-
将您的脚本标签移动到 index.html 并尝试 window.$('.team')
标签: vue-component vue.js vuejs2