2015-02-25 2 views
0

При использовании {{#each}} в шаблоне, я должен использовать {{this.name}} - {{this.thing}}, а не только {{name}} - {{thing}} по какой-то причине.доступ к данным в шаблоне

{{thing}} выдает правильное значение, но {{name}} - это всего лишь копия {{thing}} вместо фактической печати правильного значения.

Если я использую {{this.name}}, возвращается правильное значение.

template.html 
<template name="templ"> 
{{#each items}} 
    {{name}} - {{thing}}<br/> // name == thing unless i use this.name/this.thing 
{{/each}} 
</template> 


template.js 
Template.templ.helpers({ 
    'items':function(){ 
     return Items.find(); //also tried find().fetch() 
    } 
}); 

EDIT консольный вывод Items.find() выборки() [Object, Object, Object, Object, Object] 0:{ Object_id: "er2KGErydGoZBwrMc", name: "A", thing: "b.txt" }, 1:{ Object_id: "vmkgkejA3TvLZu6c6", name: "B", thing: "b.txt" }, 2:{ Object_id: "jzA2szPiakXiLibCq", name: "C", thing: "c.txt" }, 3: { Object_id: "RA29CJkgZHmhreWZo", name: "E", thing: "e.txt" }

Использование только {{имя}} -. {{}}, Что в {{}} #each блок делает ценность вещи для каждого элемента. {{this.name}} отображает правильное значение для имени.

+0

Что структура данных выглядеть, когда вы делаете console.log (. Items.find() выборки()); ? Можете ли вы скопировать и вставить его здесь, чтобы я мог помочь отладить? –

+0

Имя вашей вспомогательной функции - это «элементы», и вы делаете каждый элемент «item» вместо «items» (с «S»). Можете ли вы проверить, не является ли это синтаксической ошибкой? –

+0

Да, не опечатка в моем фактическом коде. И я только что заметил перед выходом консоли, он также печатает пустой массив '[]'. Кажется, он дважды записывается из этого помощника. Сначала без данных, затем с данными. –

ответ

0

Оказывается, у меня был помощник, уже названный {{name}}. Таким образом, {{#each}} {{name}} - {{thing}} {{/ each}} использовал хелпер имени вместо контекста данных.

упс

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