【发布时间】:2017-09-29 03:42:09
【问题描述】:
我正在尝试将 Isotope 与我的 Meteor 应用程序集成,但我遇到了一些问题。当我在 Isotope 容器中直接使用 html 时,它可以正常工作,但是当我尝试使用嵌套模板时,Isotope 不起作用。这是我目前拥有的。
Home.html
<template name="home">
<div class="grid">
{{> card }}
</div>
</template>
Home.js
import './home.html';
Template.home.onRendered ( function() {
$('.grid').isotope({
// options
itemSelector: '.grid-item',
layoutMode: 'masonry',
masonry: {
gutter: 24
}
});
});
Card.html
<template name="card">
{{#each publications}}
<div class="grid-item">
<div class="card-margin">
<img src="{{avatar}}" alt="" class="avatar"/>
<div class="name"> {{username}} <div class="dropdown"><a>></a><div class="dropdown-content">{{#if isOwner}}<button class="delete">×</button> <button class="edit">Edit</button>{{else}}<button>Report</button> <button>Unfollow</button>{{/if}}</div></div></div>
<div class="date" id="date-show">{{customDate}} </div>
<p class="card">
{{ pub }}
</p>
</div>
</div>
{{/each}}
</template>
任何帮助都会很棒。
【问题讨论】:
-
可能
home是在发布数据可用之前呈现的,在这种情况下可能还没有任何.grid-items准备好?您是否尝试将砌体代码改为card.onRendered()? -
我已经更新了我的答案,也许另一个选项更适合你。
-
谢谢迈克尔,我已经尝试了 Styx 的答案并且它有效。你是对的,我的嵌套模板是在我的主模板之后加载的,所以 Isotope 没有找到我的网格项。
标签: javascript meteor meteor-blaze jquery-isotope