当我使用{{#each}}循环在模板中尝试输出数组时,Meteor会抛出错误

时间:2016-03-08 17:50:44

标签: meteor meteor-blaze meteor-collection2

我正在学习Meter并需要一些帮助。我使用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}}目前只接受数组,游标或假值。

我认为这是一个简单的问题,解决方案很简单,但我找不到它,因为我是Meteor的新手。

我会感激一些帮助!

1 个答案:

答案 0 :(得分:1)

快速提问,您是否定义了交易&#39;你的代码中有助手吗?例如,

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

现在我已经定义了任务,我可以使用

遍历任务
{{#each tasks}}
  {{text}}
{{/each}}