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

Posted

技术标签:

【中文标题】在 Meteor 的模板渲染函数中访问父数据上下文【英文标题】:Access parent data context in Template rendered function in Meteor 【发布时间】:2015-01-02 14:05:29 【问题描述】:

我有以下父模板:

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

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

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

我该怎么做?任何帮助将不胜感激。

【问题讨论】:

你看过docs.meteor.com/#/full/template_parentdata吗? 是的。问题是,当我在 rendered 函数中使用 Template.parentData(1)._id 时,我收到此错误:Error: There is no current view 这很奇怪,我刚刚测试过它似乎可以工作。 this.view 或 Blaze.currentView 在渲染函数中返回什么? 对不起。它工作正常,我把Template.parentData(1)._id 放在错误的上下文中。非常感谢! 太棒了! :) 为了完整起见,我将把它作为一个答案。 【参考方案1】:

您可以使用Template.parentData(n) 访问任何模板助手或渲染回调中的父上下文。请参阅文档here。在内部,它所做的只是为父视图调用 Blaze getView 方法,直到它到达所需的父上下文(由 n 定义)。

【讨论】:

在活动中如何做到这一点? Template.hello.events()?

以上是关于在 Meteor 的模板渲染函数中访问父数据上下文的主要内容,如果未能解决你的问题,请参考以下文章

Meteor - 从子助手访问父模板变量

Meteor,从父模板调用子模板中的函数

在 Jasmine 中访问 Meteor 模板辅助函数以进行集成测试

每次在 Meteor 中渲染模板时脉冲

如何获取(当前模板的)父模板实例

Meteor 模板事件处理程序中“this”的上下文(使用 Handlebars 进行模板)