我正在 Backbone.js 中构建一个应用程序,并使用 gridify 以网格方式排列我的照片。问题是图像是异步加载的,这似乎导致了网格化问题。有没有办法在所有 ascyn 调用完成后调用 gridify 函数?我尝试将调用置于后期渲染中,但这似乎没有帮助。这是我的代码:
在模板上下文中:
var images = [];
this.model.get('images').each(function (imageModel) {
var image = imageModel.toJSON()
images.push(image);
}, this);
return {
images: images,
view:this
}
在后期渲染中:
var options =
{
srcNode: 'img', // grid items (class, node)
margin: '20px', // margin in pixel, default: 0px
width: '250px', // grid item width in pixel, default: 220px
max_width: '', // dynamic gird item width if specified, (pixel)
resizable: true, // re-layout if window resize
transition: 'all 0.5s ease' // support transition for CSS3, default: all 0.5s ease
}
$('.grid').gridify(options);
在我的模板中:
<div id="activity" class = "grid" style="border: 1px solid black;">
{{#if images }}
{{#each images}}
<img src ="?q=myApp/api/get_images&imgId={{id}}&imgSize=medium" >
{{/each}}
{{else}}
No images have been uploaded
{{/if}}
</div>
这会导致所有图像堆叠在一起。我认为这是因为 gridify 不知道尺寸应该是多少,因为图像是在调用 gridify 之后加载的。如果我只在模板中使用静态图像,它就可以正常工作。有人对如何在骨干网或 gridify 中处理此问题有任何建议吗?
谢谢杰森