Метеор выдает ошибку, когда я пытаюсь вывести массив в шаблоне с циклом {{#each}}

Я изучаю метр и мне нужна помощь. Я создал форму, используя Collection2 и Autoform.

Сейчас пытаюсь вывести представленные данные в виде списка, но застрял на этом шаге.

Вот мой шаблон, где я пытаюсь вывести данные:

<template name="Transactions">
    {{> NewTransaction}}
    <section class="recipes">
        {{#each transactions}}
            <article>
                <h3>{{title}}</h3>
                <p>{{desc}}</p>
                <p>
                    {{ #each category}}
                        <span class="ingredient">{{name}}</span>
                    {{ /each}}
                </p>
            </article>
        {{/each}}
    </section>
</template>

Вот моя коллекция:

Category = new SimpleSchema({
    name: {
        type: String
    }
});

TransactionSchema = new SimpleSchema({

    title: {
        type: String,
        label: "Title"
    },
    price: {
        type: Number,
        label: "Price"
    },
    category: {
        type: [Category]
    },
    desc: {
        type: String,
        label: "Description"
    },
    author: {
        type: String,
        label: "Author",
        autoValue: function() {
            return this.userId
        },
        autoform: {
            type: "hidden"
        }
    },
    createdAt: {
        type: Date,
        label: "Created At",
        autoValue: function() {
            return new Date()
        },
        autoform: {
            type: "hidden"
        }
    }

});

Если я удаляю каждый внутренний цикл, который выводит категории, все работает нормально. Но если я верну его обратно, Meteor выдаст ошибку: {{#each}} в настоящее время принимает только массивы, курсоры или ложные значения.

Я думаю, что это простая проблема и решение простое, но я не могу его найти, потому что я новичок в Метеоре.

Буду признателен за помощь!


person Sergii Korh    schedule 08.03.2016    source источник
comment
к сожалению не работает.   -  person Sergii Korh    schedule 08.03.2016
comment
попробуйте просто вывести {{category}}, чтобы увидеть, что вы там получите... это "должен" быть массив в соответствии с вашей схемой, но что, если он равен нулю? может это и скидывает ошибку?   -  person MrE    schedule 08.03.2016
comment
Он возвращает [объект Объект], [объект Объект]   -  person Sergii Korh    schedule 08.03.2016
comment
сбивает с толку... я бы ожидал [объект-объект, объект-объект]. как насчет того, чтобы написать хелпер, который возвращает this.category и посмотреть, что там в отладчике?   -  person MrE    schedule 08.03.2016
comment
он возвращает неопределенное   -  person Sergii Korh    schedule 08.03.2016


Ответы (1)


Быстрый вопрос: вы определяете помощника «транзакций» в своем коде? Например,

Template.body.helpers({
    tasks: [
        { text: "This is task 1" },
        { text: "This is task 2" },
        { text: "This is task 3" }
    ]
});

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

{{#each tasks}}
  {{text}}
{{/each}}
person Dev Coffee    schedule 08.03.2016
comment
Да, здесь: Template.Transactions.helpers({ transaction: ()=› { return Transactions.find({}); } }); - person Sergii Korh; 08.03.2016
comment
Что, если вы попробуете просто позвонить {{category[0]}} или {{category[0].name}} - person Dev Coffee; 08.03.2016