MeteorJs和Masonry

时间:2014-12-17 22:42:30

标签: javascript meteor masonry

我正在使用MeteorJS(太棒了:)),开发简单的应用程序。我想使用砌体,所以我使用的是sjors:meteor-masonry包。

当我使用此代码时,一切正常:

var itemsData = [
{
title: 'First item',
description: 'Lorem 1',
price: 20
},
{
title: 'Secounde item',
description: 'Lorem 2',
price: 40
},
{
title: 'Third item',
description: 'Lorem 3',
price: 10
},
{
title: 'Fourth item',
description: 'Lorem 4',
price: 10
},
{
title: 'Five item',
description: 'sit 4',
price: 10
}

];

Template.itemsList.helpers({
items: itemsData
});

Template.itemsList.rendered = function() {

    var container = document.querySelector('#main');
    var msnry = new Masonry( container, {
    // options
    columnWidth: 200,
    itemSelector: '.item'
    });
};

但是当我将Template.itemsList.rendered的部分(代码)更改为砌体时不起作用:

Template.itemsList.helpers({
items: function() {
return Items.find();
}
});

有什么想法吗?

修改

的myapp / LIB /集合/ items.js

Items = new Mongo.Collection('items');

它是从mongoshell填充的whit数据。数据还可以,但砖石不起作用。

编辑2

砌体在屏幕调整大小时停止动画,网格无法正常工作。没有错误。

的myapp /客户端/模板

<template name="itemSingle">
<div id="profile-widget" class="panel item">
<div class="panel-heading">
            </div>
            <div class="panel-body">
               <div class="media">

                  <div class="media-body">
                     <h2 class="media-heading">{{title}}</h2>
                     {{description}}
                  </div>
               </div>
            </div>
            <div class="panel-footer">
               <div class="btn-group btn-group-justified">
                  <a class="btn btn-default" role="button"><i class="fa fa-eye"></i> 172</a>
                  <a class="btn btn-default" role="button"><i class="fa fa-comment"></i> 34</a>
                  <a class="btn btn-default highlight" role="button"><i class="fa fa-heart"></i> 210</a>
               </div>
            </div>

</div>
</template>

<template name="itemsList">

<div id="main">
{{#each items}}
{{> itemSingle}}
 {{/each}}
</div>

</template>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但从未找到完美的解决方案。 我尝试使用setTimout()解决方法解决:

Template.main.rendered = function() {
    setTimeout(function() {
        $('#container').masonry({
            columnWidth: 35,
            itemSelector: '.thumb',
            gutter: 10,
            isFitWidth: false
        });
    }, 1);  
}