匹配具有id和插入数据的字段 - 流星

时间:2014-11-28 15:37:43

标签: javascript meteor

我有一个包含以下数据的集合。

{
    containerId: "content-left",
    content: "<p>Some text for the left side</p>"
},
{
    containerId: "content-right",
    content: "<p>Some text for the right side</p>"
}

我想遍历每个文档并获取containerId,然后将其与id匹配,并仅插入与id匹配的containerId中的内容。

//模板

<template name="mainLeft">

    <section id="content-left" class="content">
        {{#each copy}}
            {{{content}}}
        {{/each}}
    </section>

</template>

<template name="mainRight">

    <section id="content-right" class="content">
        {{#each copy}}
            {{{content}}}
        {{/each}}
    </section>

</template>

目前,我只是从集合中获取所有数据并将其插入每个部分,因此它看起来像这样

<section id="content-left" class="content">
    <p>Some text for the left side</p>
    <p>Some text for the right side</p>
</section>

<section id="content-right" class="content">
    <p>Some text for the left side</p>
    <p>Some text for the right side</p>
</section>

// HELPER

  UI.registerHelper('copy', function() {
    return ContentCollection.find();
  });

所以它应该看起来像这样

<section id="content-left" class="content">
    <p>Some text for the left side</p>
</section>

<section id="content-right" class="content">
    <p>Some text for the right side</p>
</section>

1 个答案:

答案 0 :(得分:1)

您应该注册两个单独的模板助手。

UI.registerHelper('copyLeft', function() {
    return ContentCollection.find({containerId:'content-left'});
});

UI.registerHelper('copyRight', function() {
    return ContentCollection.find({containerId:'content-right'});
});

然后,您可以使用copyLeft和copyRight

替换模板中的副本
<section id="content-left" class="content">
    {{#each copyLeft}}
        {{{content}}}
    {{/each}}
</section>

<section id="content-right" class="content">
    {{#each copyRight}}
        {{{content}}}
    {{/each}}
</section>

如果您想要更灵活,您还可以将参数传递给帮助者

UI.registerHelper('copy', function(container) {
    return ContentCollection.find({containerId:container});
});

然后你可以像这样使用它:

<section id="content-left" class="content">
    {{#each copy 'content-left'}}
        {{{content}}}
    {{/each}}
</section>

<section id="content-right" class="content">
    {{#each copy 'content-right'}}
        {{{content}}}
    {{/each}}
</section>