backbone.js - 使用 CompositeView、Collection 和 ItemView 进行复杂渲染

标签 backbone.js marionette

我有一个 CompositeView、Collection 和 ItemView 工作正常。它实际上正在获取我的结果,这非常棒。我的问题是,我必须构建一个列表(使用 <li> ),但每 3 个项目拆分一次。

渲染输出应该是这样的:

<div id="feed">
    <ul class="feed">
        <li><img src="assets/img/1.jpg"></li>
        <li><img src="assets/img/2.jpg"></li>
        <li><img src="assets/img/3.jpg"></li>
    </ul>

    <ul class="feed">
        <li><img src="assets/img/4.jpg"></li>
        <li><img src="assets/img/5.jpg"></li>
        <li><img src="assets/img/6.jpg"></li>
    </ul>
</div>

我已经成功渲染了 <ul>包含所有列表元素但是...我如何才能做出类似上面的输出?我真的不知道如何开始。

提前致谢!

最佳答案

您可以通过重写 appendHtml 方法来更改 CollectionView/CompositeView 呈现项目的方式。你会想做这样的事情:

appendHtml : function (collectionView, itemView, index) {
  if (! index % 3) {
    this.$("#id").append("<ul class='feed'/>");
  }
  this.$("#id ul:last").append(itemView.el);
}

关于backbone.js - 使用 CompositeView、Collection 和 ItemView 进行复杂渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17732979/

相关文章:

javascript - Require.js 中没有定义调用函数

backbone.js - Backbone.Marionette-访问ItemView模板或CompositeView模板中的变量

backbone.js - 了解 Backbone 模型设置、验证和更改回调

javascript - Marionette 行为 : Add dynamic options

javascript - Zingchart 图表未填充父 div 的宽度

javascript - 将 Backbone.js 与 _.noConflict() 一起使用

javascript - 跨域的 Backbone PUT 请求未将 id 附加到 URL

backbone.js - Marionette 布局和区域有什么区别?

javascript - Backbone.Marionette 与 Backbone-Boilerplate

backbone.js - 如何使用 Backbone Events/Vent 更改 Backbone 动态 URL?