2014-11-12 2 views
4

Я читал эти уроки на Spacebars.Как я могу {{#each}} работать с этими шаблонами?

Understanding Spacebars by David Burles

Meteor's Spacebars README on Github

Discover Meteor's Spacebars secrets

Я думаю, что я могу понять, очень хорошо, но я с этой проблемой

я имею main.html шаблон, как этот

<template name="main"> 
    <div class="container"> 
<section id="bl-work-section"> 
    <div class="bl-box"> 
      <h4 class="sin">Próximo</h4> 
      <h2 id="titulo1" class="sin"></h2> 
      <h4 class="sin" id="sub1"></h4> 
    </div> 
     <div class="bl-content"> 
      <h2>Lunes 25 de Noviembre del 2014</h2> 

      {{#each mostrarLunes}} 
      {{> Lunes}} 
      {{/each}} 
    <a></a> 
    </div>  
     <span class="bl-icon bl-icon-close"></span> 
</section> 

<!-- Panel items for the works --> 
    <div class="bl-panel-items" id="bl-panel-work-items"> 
     {{#each mostrarLunes}} 
      {{showPromos}} 
     {{/each}} 
    </div>     
     </div> 
     </div><!-- /container -->  
</template> 

Так как вы, ребята, видят им вызов 2 шаблонов внутри основного шаблона и 2 шаблонов выглядеть следующим образом

Lunes.html Шаблон

<template name="Lunes"> 
    <ul id="bl-work-items">   
       <li data-panel="panel">   
       <div class="oferta"> 
      <a href="#"> <h3>Promocion: {{metadata.nombrePromo}} </h3><br><small>Descripcion:{{metadata.descripcionPromo}}</small></a> 
     </div></li><br><br> 
         </ul>  
</template> 

showPromos.html Шаблон

<template name="showPromos"> 
    <div data-panel="panel">   
    <div> 
       <h1>Estoy viendo esto en la segunda pagina </h1> 
          <h3>Nombre Promo {{metadata.nombrePromo}}</h3> 
          <p>Descripcion promo.{{metadata.descripcionPromo}}</p> 
         </div>    
        </div>   
        <nav> 
         <span class="bl-icon bl-icon-close"></span> 
        </nav>  
</template> 

Так в чем проблема? хорошо, если мы посмотрим на шаблоне Lunes и showPromos, у меня есть данных Panel = «панель», но его, кажется, как эта панель данных не работает, когда я обернуть это значение на {{каждый }} теги, потому что, если я использую, что {{each}} теги вне селектор данных работает, поэтому кажется, что его работа не работает, кажется, что у них нет связи.

так что я спрашиваю, есть ли способ связать это значение? уже пытаются хелперов атрибуты, как говорит третье звено, и не работают, то атрибуты хелперы выглядеть так

Template.main.helpers({ 
    attributes: function() { 
    return { 
     dataPanel: "prueba", 
    } 
    } 
}); 

Helper mostrarLunes

Template.main.helpers({ 
    'mostrarLunes' : function(){ 
    return Promociones.find({'metadata.diaOferta' : { $in: ['Lunes'] } }); 
    } 
}); 
+2

делает mostrarLunes имеет объект метаданных. Покажешь помощник для mostrarLunes, а также –

+0

, его работа для вас? – Ethaan

+0

это может быть просто опечатка, но вам нужно '>' вызвать ваш subtemplate showPromos - это должно быть '{{> showPromos}}', а не '{ {showPromos}} ', который будет искать контекст/вспомогательную функцию данных вместо шаблона. – richsilv

ответ

1

выглядит как контекст данных не установлен. Попробуйте создать вспомогательный шаблон для других шаблонов с данными (я не понимаю по-испански, так что я предполагаю, что это курсор MongoDB вам нужно ...

Templates.lunes.helpers({ 
    data: function() { 
    return Promociones.find({'metadata.diaOferta' : { $in: ['Lunes'] } }); 
    } 
}); 

Templates.showPromos.helpers({ 
    data: function() { 
    return Promociones.find({'metadata.diaOferta' : { $in: ['Lunes'] } }); 
    } 
});