模板的数据上下文

无论何时调用模板,都会从调用者隐式获取模板的默认数据上下文,例如,childTemplate 获取 parentTemplate 的数据上下文,即调用者模板

<template name="parentTemplate">
    {{#with someHelperGettingDataForParentTemplate}}
    <h1>My name is {{firstname}} {{lastname}}</h1>
    //some stuffs here
    {{> childTemplate}}
    {{/with}}
</template>

在上面的情况中,childTemplate 自动获取帮助器为父模板提取的任何数据。例如,可以从 childTemplate 访问{{firstname}}和{{lastname}},如下所示。

<template name="childTemplate">
<h2>My name is also {{firstname}} {{lastname}}</h2>
</template>

我们甚至可以通过将参数传递给模板来显式定义 childTemplate 的数据上下文,如下例所示。

<template name="parentTemplate">
    {{#with someHelperGettingDataForParentTemplate}}
    <h1>My name is {{firstname}} {{lastname}}</h1>
    //some stuffs here
    {{> childTemplate childData=someHeplerReturningDataForChild}}
    {{/with}}
</template>

假设帮助者 someHelperReturningDataForChild 返回像{profession:Meteor Developer,hobby:stackoverflowing}这样的对象,这个特定对象将是 childTemplate 的显式数据上下文。现在在儿童模板中我们可以做类似的事情

<template name="childTemplate">
    <h2>My profession is {{profession}}</h2>
    <h3>My hobby is {{hobby}}</h3>
</template>