【发布时间】:2015-01-15 16:08:17
【问题描述】:
我正在使用passy's angular-masonry directives 在我的应用程序中呈现平铺元素。与许多砌体示例不同,我的砖块不包含图像,仅包含通过自定义指令呈现的静态文本和布局内容。我的设置如下:
<div data-masonry
data-column-width="250"
data-load-images="false"
data-preserve-order
data-reload-on-show
data-masonry-options="{ gutter: 15, isFitWidth: true, transitionDuration: 0 }">
<div class="masonry-brick"
data-ng-repeat="event in vm.events | orderBy: 'startTime.toDate()' | filter: (vm.showOnlyRegistered && { going: true })">
<div data-event-item="event"></div>
</div>
</div>
data-event-item 是我的指令,它呈现如下内容:
<div class="panel panel-default panel-thin light-shadow bgcolor-override event-item-card">
<div class="panel-body" data-ng-class="{'bg-success': event.going}">
<div>
<p class="text-medium text-thin">{{event.name}}</p>
</div>
<p>
<strong>{{event.computed.locationName}}</strong><br />
<span data-ng-if="!event.virtual">{{event.city}}, {{event.state}} {{event.zipCode}}</span>
</p>
<span class="center-block">
<span data-discover-pill data-type="default">
<span class="text-thin">{{event.computed.registrationLabel}}</span>
</span>
</span>
<button type="button"
class="btn push-to-bottom bottom-center"
data-ng-class="{'btn-default': !event.going, 'btn-success': event.going}"
data-ng-click="toggleGoing(event.id)">
I'm Going <i class="fa fa-check"></i>
</button>
</div>
在我的 CSS 中,我为进入砖块的元素定义了 width 和 height,因此(加上我明确设置 masonry column-width 的事实)应该让砌体知道所有的大小我的砖是。
除了有时(随机?)在页面加载时所有砖块在左边缘的一大堆中相互堆叠,一切都正常工作,就好像布局例程没有触发一样。如果手动调整窗口大小,一切都会恢复正常并保持这种状态。这似乎是其他一些人遇到的问题:https://github.com/passy/angular-masonry/issues/82
我已经尝试了preserve-order 和load-images="false" 的所有组合等等。我想我需要手动触发重新加载/重新布局,但据我所知,使用 passy 指令,你不能 directly call masonry 方法。
【问题讨论】:
标签: javascript jquery angularjs