2015-05-13 4 views
0

{{> myTemp}} работает отлично, но {{> Template.dynamic template="myTemp"}} даетTemplate.dynamic терпит неудачу с неперехваченной Ошибкой: {{}} #each

Uncaught Error: {{#each}} currently only accepts arrays, cursors or falsey values.

Не знаю, где смотреть

- обновлена, чтобы добавить каждый блок -

{{#each this}} 
     <section class="blog-post"> 
     {{#if isInRole 'mdblog-author'}} 
      {{> blogControls }} 
     {{/if}} 
      <header> 
       <h2><a href="{{pathFor route='blogPost'}}">{{title}}</a></h2> 
        <span class="info">{{_ "posted_by"}}<span class="author">{{author}}</span> 
         <time>{{mdBlogDate date}}</time> 
        </span> 
      </header> 
      <summary> 
      {{{summary}}} <a href="{{pathFor route='blogPost'}}">{{_ "read_more"}} 
       <i class="fa fa-long-arrow-right"></i></a> 
      </summary> 
     </section> 
    {{else}} 
     {{_ "waiting_for_posts"}} 
    {{/each}} 
+0

Вы можете показать цикл #each с помощью вспомогательного var, который вы повторяете? –

+0

обновленный вопрос @MattK – garrilla

ответ

0

this является объектом, указывающий на контекст данных, который является объектом (или не определено, но если бы это было так, он не будет выдавать ошибку). Вы не можете перебирать объекты.

Вы хотите выполнить итерацию по массиву, хранящемуся в вашем контексте данных (естественно нереактивный) или курсором mongo (реактивный). Если ваша цель состоит в том, чтобы перебирать каждый элемент в контексте данных, тогда это так же просто, как превращать значения объекта в массив. Я не уверен, что именно ваша цель, но вы, вероятно, хотите, чтобы следовать что-то вроде этого:

sampleDoc: function() { 
    var valArr = []; 
    for (var key in this) { 
     if (this.hasOwnProperty(key)) { 
     valArr.push(this[key]); 
     } 
    } 
    return valArr; 
} 

Если вам нужны ключи тоже просто создать массив ключей & толчок key вместо this[key] Если вам нужно реактивность, просто вставьте .depend() в начале.

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