在Meteor中嵌套的#each块之间传递数据

时间:2016-02-20 05:59:15

标签: meteor handlebars.js

这就是我的模板的外观

$nombrador

以下是帮手

<Template name="launcherBody">
{{#each workspace in Workspace}}
    <h1>
        Workspace: {{workspace.title}}
    </h1>
    {{#each board in Boards}}
        <div class="board">
            <h2>
                {{board.title}}
            </h2>   
        </div>
    {{/each}}
{{/each}}

因为您可以看到Board与Workspace映射,并且要找到Board需要从之前的#each获取workspace._id。

我怎样才能实现这个?

我通过将Board和Workspace代码保存在不同的模板中来尝试Template.parentData(),但事情并没有解决问题

1 个答案:

答案 0 :(得分:1)

您可以使用Template.parentData(n) docs

来引用父数据上下文
boards: function () {
  var wId = Template.parentData(1)._id;
  return Board.find({"workspaceId": wId})
}

或者,您可以将变量作为参数显式传递给帮助程序:

{{#each board _id}}

该表达式_id将来自父

然后你的助手会直接使用那个arg:

boards: function (wId) {
  return Board.find({"workspaceId": wId})
}