【问题标题】:Passing data between nested #each block in Meteor在 Meteor 中嵌套的 #each 块之间传递数据
【发布时间】:2016-06-01 21:07:15
【问题描述】:

这就是我的模板的样子

<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}}

这里是帮手

Template.launcherBody.helpers({
  workspace: function () {
      return Workspace.find({ "member_id": Meteor.userId()});
  },
  boards: function () {
    /*return Board.find({"workspaceId": ??? }) */
  }
});

如您所见,Board 与 Workspace 进行了映射,要找到 Board,需要从之前的 #each 中获取 workspace._id。

我怎样才能做到这一点??

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

【问题讨论】:

    标签: meteor handlebars.js


    【解决方案1】:

    你可以用Template.parentData(n)docs引用父数据上下文

    boards: function () {
      var wId = Template.parentData(1)._id;
      return Board.find({"workspaceId": wId})
    }
    

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

    {{#each board _id}}
    

    在该表达式中,_id 将来自父级

    那么你的助手将直接使用该参数:

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

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 2013-09-02
      • 2018-04-09
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 2013-12-17
      相关资源
      最近更新 更多