循环遍历可枚举的前两个条目

时间:2013-04-04 09:18:51

标签: ember.js handlebars.js

我有以下工作句柄代码:

{{#each phoneNumber in switchboardEntry.sipAccount.phoneNumbers}}
  <span class="label">
    {{phoneNumber.number}}
  </span>
{{/each}}

但是我想循环到switchboardEntry.sipAccount.phoneNumbers的前两个条目而不是整个集合。我在http://emberjs.com/guides/enumerables/上找到了一个过滤器示例,但仍处于Ruby思维模式,我试图在switchboardEntry.sipAccount.phoneNumbers之后放置该过滤器,但这不起作用。

解决这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以将计算属性添加到sipAccount模型。

这样的事情可能是:

App.SipAccount = DS.Model.extend({
    phoneNumbers: DS.hasMany('App.PhoneNumbers'),

    phoneNumberShortList: Ember.computed(function() {
        var phoneNumbers = this.get('phoneNumbers');
        return phoneNumbers.slice(0,2);
    }).property('phoneNumbers.@each.number')
});

<强>更新

Handlebars代码将是:

{{#each phoneNumber in switchboardEntry.sipAccount.phoneNumberShortList}}
  <span class="label">
    {{phoneNumber.number}}
  </span>
{{/each}}

答案 1 :(得分:0)

<span class="label">
  {{switchboardEntry.sipAccount.phoneNumbers.0.number}}
</span>

<span class="label">
  {{switchboardEntry.sipAccount.phoneNumbers.1.number}}
</span>

OR

{{#with switchboardEntry.sipAccount.phoneNumbers}}
  <span class="label">
    {{0.number}}
  </span>

  <span class="label">
    {{1.number}}
  </span>
{{/with}}

Fiddle