首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主干显示集合(可能是集合的集合?)

主干显示集合(可能是集合的集合?)
EN

Stack Overflow用户
提问于 2012-10-23 04:22:32
回答 1查看 272关注 0票数 1

js文件;

代码语言:javascript
复制
var dataModel = Backbone.Model.extend({
            defaults : {
                dataID : 'unknown',
                text : 'unknown'
            }
        });
        var LinkCollection = Backbone.Collection.extend({
            model : dataModel
        });

假设集合大小为8。我想一次显示3个。由于脚本的结构,我需要将收集项划分为单独的div。

html文件;

代码语言:javascript
复制
<div class="item">
<div class="carousel-subItem">  <-- Collection item #1
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
<div class="carousel-subItem">  <-- Collection item #2
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
<div class="carousel-subItem">  <-- Collection item #3
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
</div>


<div class="item">
<div class="carousel-subItem">  <-- Collection item #4
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
<div class="carousel-subItem">  <-- Collection item #5
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
<div class="carousel-subItem">  <-- Collection item #6
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
</div>

<div class="item">
<div class="carousel-subItem">  <-- Collection item #7
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
<div class="carousel-subItem">  <-- Collection item #8
   <span>{{dataID}}</span> <br /> <span>{{text}}</span>
</div>
</div>

我很难动态地创建这个html结构。(由于集合大小可能会有所不同...结构应该是完全动态的等等;

代码语言:javascript
复制
 {{#each dataModel}}
    // code goes here, to create the above structure.. 
 {{/each}}
EN

回答 1

Stack Overflow用户

发布于 2012-10-23 05:31:48

也许这样的东西可能会对你有所帮助:

代码语言:javascript
复制
<script type="text/tempalte" id="template">

<% var len = items.length, group = 3, i; %>
<% for (i = 0; i <len; i += 1) { %>
    <% if (i % group === 0) { %>
        <div class="item">
    <% } %>
        <div class="carousel-subItem"> 
            <span><%= items[i].dataID %></span> <br /> <span><%= items[i].text %></span>
        </div>
    <% if ((i % group === group-1) || (i === len -1)) { %>  
        </div>
    <% } %>
<% } %>
</script>

我假设您会喜欢使用下划线,因为您正在使用Backbone。items集合看起来像这样,应该接近Backbone的观点:

代码语言:javascript
复制
var items = [
    { dataID : '1', text : 'bla' },
    { dataID : '2', text : 'blab' },
    { dataID : '3', text : 'gulp' },
    { dataID : '4', text : 'golp' },
    { dataID : '5', text : 'bla' }
];

// compiling the template
var template = _.template($('#template').html());
console.log(template(items));

输出如下所示:

代码语言:javascript
复制
<div class="item">

        <div class="carousel-subItem"> 
            <span>1</span> <br /> <span>bla</span>
        </div>



        <div class="carousel-subItem"> 
            <span>2</span> <br /> <span>blab</span>
        </div>



        <div class="carousel-subItem"> 
            <span>3</span> <br /> <span>gulp</span>
        </div>

        </div>



        <div class="item">

        <div class="carousel-subItem"> 
            <span>4</span> <br /> <span>golp</span>
        </div>



        <div class="carousel-subItem"> 
            <span>5</span> <br /> <span>bla</span>
        </div>

        </div>

我可以补充说,更好的方法是有一个呈现"carousel-subItem"-div的ItemView和一个负责将呈现的ItemViews组合到一个容器中的CollectionView。我认为Backbone.Marionette提供的正是这一点。也许你想去看看。当然,您也可以自己构建类似的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13019231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档