Emberjs在条件下增加了collectionView

时间:2014-04-18 10:15:48

标签: ember.js

我有一个ArrayController.create({}),我在其中有一些动态数据(每2个secondes刷新一次数据),我在模板中使用collectionView显示。

但是我想有时不会从集合中显示一些数据。我的content是一个对象数组,在我有价值的每个对象中告诉我是否必须显示它。

问题是我不知道如何指定我的集合不显示这个项目,而只是显示下一个项目(如果可以显示它)

这是我的收藏:

{{#collection App.ConferenceParticipantsView}}
{{#ifLead view.content.type}}
<td class="table-conf-td">
    <div class="conf-participant">
                <span class="conf-lead">
                    {{view.content.name}}
                </span>
        <img src="assets/ic_group@2x.png">
        <br/>
        {{view.content.phone}}
    </div>
</td>
{{else}}
{{#if view.content.waiting}}
<td class="table-conf-td" style="display:none">
    {{else}}
<td class="table-conf-td">
    {{/if}}
        <a {{action "conferenceParticipantActionBar" view.content.id}} style="text-decoration: inherit;">
        <div class="conf-participant">
                    <span class="conf-lead">
                        {{view.content.name}}
                    </span>
            {{view.content.waiting}}
            <br/>
            {{view.content.phone}}
        </div>
        </a>
</td>
{{/ifLead}}
{{/collection}}

{{#ifLead}}是我为验证某些数据所做的一种欺骗(如果数据的前导值设置为真,则显示不同的数据。

所以可以在集合中做这样的事情:

{{#if isShowing}}
    //Display the data
{{else}}
    //go to the next item
{{/if}}

如果isShowing值设置为false,是否可以在集合生成的display:none标记上放置<tr>

1 个答案:

答案 0 :(得分:0)

我认为你应该使用each helper来处理这种情况。检查文档和示例。

{{#each model in XXXXXX}}

  {{#if model.canShow}}
    //Display the data
    {{model.name}}
  {{else}}
    // do not show anything
  {{/if}}

{{/each}}