【发布时间】:2012-05-11 07:02:03
【问题描述】:
我有一个 Handlebars 模板,我正在尝试从数组中生成以逗号分隔的项目列表。
在我的 Handlebars 模板中:
{{#each list}}
{{name}} {{status}},
{{/each}}
我希望, 不显示在最后一项上。有没有办法在 Handlebars 中做到这一点,还是我需要回退到 CSS 选择器?
更新:根据 Christopher 的建议,这是我最终实施的:
var attachments = Ember.CollectionView.extend({
content: [],
itemViewClass: Ember.View.extend({
templateName: 'attachments',
tagName: 'span',
isLastItem: function() {
return this.getPath('parentView.content.lastObject') == this.get('content');
}.property('parentView.content.lastObject').cacheable()
})
}));
在我看来:
{{collection attachments}}
和项目视图:
{{content.title}} ({{content.size}}) {{#unless isLastItem}}, {{/unless}}
【问题讨论】:
-
我发现的另一件事是,如果您删除最后一个项目,则需要强制重绘每个项目以删除最后一个分隔符。默认情况下,删除一个项目似乎只会删除该项目的视图,而其他项目不会更新(这是有道理的)。
标签: javascript ember.js handlebars.js