在Meteor中的模板渲染函数中访问父数据上下文

14

我有以下父模板:

<template name="parentTempl">
    {{#each child}}
       {{> childTempl}}
    {{/each}}
</template>

我想在childTempl中访问父数据上下文:

Template.childTempl.rendered = function() {
    console.log(this.parent.data); // ?
};

我该怎么做?非常感谢您的任何帮助。


1
你看过 https://docs.meteor.com/#/full/template_parentdata 吗? - mark
是的。问题在于,当我在我的“渲染”函数中使用Template.parentData(1)._id时,会出现此错误:错误:没有当前视图 - user3475602
1
很奇怪,我刚刚测试了一下,它似乎可以工作。在渲染函数内部,this.view或Blaze.currentView返回什么? - mark
抱歉,我的错。它运行良好,我将Template.parentData(1)._id放在了错误的上下文中。非常感谢! - user3475602
太好了! :) 为了完整起见,我将把这个拆分成一个答案。 - mark
1个回答

23

您可以使用 Template.parentData(n) 在任何模板助手或渲染回调中访问父上下文。在这里查看文档here。内部实现是通过为父视图调用Blaze getView方法,直到达到所需的父上下文 (由n定义)。


3
在事件中如何完成这个操作?Template.hello.events()? - Michael Cole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接