2013-09-11 2 views
3

новичок вопрос здесь ... Я пытаюсь получить простое приложение meteor, но у меня возникли проблемы с получением одной из моих вспомогательных функций (кажется, ее игнорируют).meteor условный html с помощью помощников

В принципе, мне приходилось использовать несколько иной вызов html в зависимости от того, использую ли я первый элемент в коллекции или нет.

Я добавил порядковый номер в коллекцию (сло), который начинается с 0, создал вспомогательную функцию на шаблоне

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 кажется, никогда не бывает (я никогда не вижу выхода журнала консоли в любом случае ...

Любая идея, почему? есть ли лучший ва y сделать это в любом случае (кажется немного неуклюжим).

Ta

Peter.

ответ

1

Поместите что-нибудь визуальное для каждого ли. Появляется ли 1, 2 или оба?

Другой способ сделать это просто имя класса (активный или пустой), возвращаемый помощника, класс = «{{sponsor_class}}» Добавлено: Мы можем узнать, что ложный путь принимаются, а затем спросить почему. Общей причиной является отказ JavaScript. Вы знаете о своей консоли веб-браузеров?

+0

Спасибо Джим. Я вижу, что li заполняются базовыми данными (с использованием хром-инструментов javascript), но ... функция first_sponsor вообще не срабатывает. Я попробовал ваше предложение раньше, но все равно ничего не произошло, потому что снова я не думаю, что помощника уволили. –

+0

Существует два пути, основанных на первом спонсоре. Правда и ложь. Какой из них принимается? Я подозреваю ложь; пожалуйста подтвердите. Глядя на код, вы сначала регистрируете это. Держу пари, что это неудачно и показывает исключение на консоли. Это твоя проблема. –

+0

Закрыть ... глядя в консоль, поставьте меня на часть ответа ... ответ здесь - это тест, который должен быть (this.seq == 0) not (this.seq === 0). Но ... теперь у меня есть еще одна проблема .. открылся как новый вопрос. Кстати .. console.log в порядке. –

Смежные вопросы