3

新手问题在这里...我正在尝试启动一个简单的流星应用程序,但是在调用我的一个辅助函数时遇到了麻烦(它似乎被忽略了)。

基本上我会根据我是否使用集合中的第一项来使用稍微不同的 html 调用。

我已经向从 0 开始的集合 (seq) 添加了一个序列号,在模板上创建了一个辅助函数

Template.carousel.helpers({
  sponsors: function() {
    return sponsorDocs.find();
  },
  first_sponsor: function() {
    console.log(this);
    var value = (this.seq === 0);
    if(value) {
      console.log("Got first sponsor");
    }
    else {
      console.log("Not the first sponsor");
    }

    return value;
  }
});

并尝试在模板中使用它,如下所示..

<template name="carousel">
<!-- Carousel
================================================== -->
<div id="tbCarousel" class="carousel slide">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    {{#each sponsors}}
      {{#if first_sponsor}}
        <li data-target="#tbCarousel" data-slide-to={{seq}} class= "active" ></li> 
      {{else}}
        <li data-target="#tbCarousel" data-slide-to={{seq}} ></li> 
      {{/if}}
    {{/each}}
  </ol>........

现在,每个都工作正常,但 first_sponsor 调用似乎永远不会发生(无论如何我从来没有看到控制台日志输出......

知道为什么吗?有没有更好的方法来做到这一点(看起来有点笨拙)。

彼得。

4

1 回答 1

1

为每个 li 放置一些视觉效果。出现 1、2 还是两者都出现?

另一种方法是让助手返回类名(活动或空白), class="{{sponsor_class}}" 一个常见的原因是 JavaScript 失败。你知道你的网络浏览器控制台吗?

于 2013-09-11T09:49:19.077 回答