如何使用空格键获取第一个集合元素{{#if}}标记?

Han*_*lav 3 meteor spacebars

我试图将第一张图片设置为"活动项目"我是一个Bootstrap Carousel.那么,有没有办法让集合中的第一个元素与其他元素不同?

      {{#each pictures}}
        {{#if @first}}
              <div class="item active">
                 <img src="/pictures/{{fileName}}" alt="" />
            </div>
       {{else}}
          <div class="item">
             <img src="/pictures/{{fileName}}" alt="" />
          </div>
       {{/if}}
     {{/each}}
Run Code Online (Sandbox Code Playgroud)

呈现的页面仅显示{{else}}语句中的内容.尝试过使用{{if @first}},但它对我不起作用.

Dav*_*don 8

这非常类似于模板需要索引的问题.您需要映射pictures并标记您需要区别对待的那个.例如:

Template.myPictures.helpers({
  pictures: function() {
    return Pictures.find().map(function(picture, index) {
      if (index === 0)
        picture.isFirst = true;

      return picture;
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

然后isFirst,您可以在模板中使用如下:

{{#each pictures}}
  {{#if isFirst}}
    <div class="item active">
      <img src="/pictures/{{fileName}}" alt="" />
    </div>
  {{else}}
    <div class="item">
      <img src="/pictures/{{fileName}}" alt="" />
    </div>
  {{/if}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

请注意,CoffeeScript @不适用于模板.要了解更多关于模板的上下文看这个.