繁体   English   中英

带数据的Handlebars.js网格

[英]Handlebars.js grid with data

我正在使用Parse.com从服务器提取数据并将其显示在handlebars.js模板中。

<script id="blogs-tpl" type="text/x-handlebars-template">
  {{#each blog}}

  <div class="blog-post">
    <p class="blog-post-meta"><a href="#"><img src="{{image.url}}"></a></p>
    <h5 id="productTitle" class="blog-post-title">{{productType}}</h5>
    <div>${{price}} USD</div>
    <div><span class="typcn typcn-heart" style="color: red; font-size: 20px;"></span> {{likesCount}}</div>
    <a href="" id="download-button" class="btn-large waves-effect waves-light indigo darken-2">Details</a>
  </div>


  {{/each}}
</script>

这是用于与API通信的js:

var Blog = Parse.Object.extend("Blog");

var Blogs = Parse.Collection.extend({
    model: Blog
});

var blogs = new Blogs();

blogs.fetch({
    success: function(blogs) {
        var blogsView = new BlogsView({ collection: blogs });
        blogsView.render();
        $('.main-container').html(blogsView.el);
    },
    error: function(blogs, error) {
        console.log(error);
    }
});

var BlogsView =  Parse.View.extend({
    template: Handlebars.compile($('#blogs-tpl').html()),
    render: function(){ 
        var collection = { blog: this.collection.toJSON() };
        this.$el.html(this.template(collection));
    }
});

如何在5xn(5列)的网格中显示此内容?

嘿。 经过一些试验后想出了,所以这是我的答案。 鉴于我正在使用Materialize框架,我可以仅使用m3类来设置列的宽度(并获得4列的网格)。

<script id="blogs-tpl" type="text/x-handlebars-template">

  <div class="blog-post">
    {{#each blog}}
    <div class="col s12 m3" style="overflow: hidden;">
      <div class="icon-block">
        <h2 class="center light-blue-text"></h2>

        <p class="blog-post-meta"><a href="#"><img style="width: 100%; height: auto;" src="{{image.url}}"></a></p>
        <h5 id="productTitle" class="blog-post-title">{{productType}}</h5>
        <div>${{price}} USD</div>
        <div><span class="typcn typcn-heart" style="color: red; font-size: 20px;"></span> {{likesCount}}</div>
        <a href="" id="download-button" class="btn-large waves-effect waves-light indigo darken-2">Details</a>

      </div>
    </div>

    {{/each}}
  </div>

</script>

我猜你可以用Bootstrap做同样的事情。 关键是#each出现在确定列宽的div之外,例如col-sm-3,col-md-3等,因此您要重复3次33.33%宽的列3,例如,然后自动生成下一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM