При использовании {{#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}} отображает правильное значение для имени.
Что структура данных выглядеть, когда вы делаете console.log (. Items.find() выборки()); ? Можете ли вы скопировать и вставить его здесь, чтобы я мог помочь отладить? –
Имя вашей вспомогательной функции - это «элементы», и вы делаете каждый элемент «item» вместо «items» (с «S»). Можете ли вы проверить, не является ли это синтаксической ошибкой? –
Да, не опечатка в моем фактическом коде. И я только что заметил перед выходом консоли, он также печатает пустой массив '[]'. Кажется, он дважды записывается из этого помощника. Сначала без данных, затем с данными. –