Meteor/Iron路由器-在{{#each}}循环中获取父数据

Meteor / Iron router - Get parent data in an {{#each}} loop

本文关键字:循环 获取 数据 #each 路由器 Meteor Iron      更新时间:2023-09-26

考虑:

Template.tasks.helpers({
    equals: function() {
        // var data = ?
        return data.test == this;
    }
});

和:

<template name="tasks">
    <ul>
    {{#each elements}}
        <li>
            {{this}} {{#if equals}}Equals!{{/if}}
        </li>
    {{/each}}
    </ul>
</template>

例如:

Router.route('tasks', {
    data: function () {
        var example = {
            test: 42,
            elements: [1, 2, 42, 100]
        }
        return example;
    }
});

如何获取父数据上下文(通过iron router的route()方法传递的数据字段)?

在上面的例子中,我们如何显示42-Equals

我相信您正在寻找Template.pparentData():

Template.tasks.helpers({
    equals: function() {
        var data = Template.parentData();
        return data.test == this;
    }
});

下面是一个活生生的例子:http://meteorpad.com/pad/LHxyDYkmNQB9H2Ezy/ParentData

我不知道这是否是唯一的方法,但我在模板中找到了一个使用..的解决方案:

<template name="tasks">
    <ul>
    {{#each elements}}
        <li>
            {{this}} {{#if equals ..}}Equals!{{/if}}
        </li>
    {{/each}}
    </ul>
</template>

然后:

Template.tasks.helpers({
    equals: function(parentData) {
        return parentData.test == this;
    }
});
相关文章: