我有一个子模板,标签:
<template name="label">{{name}}</template>
我包含在父模板中(其数据上下文定义name
),如下所示:
答: <template name="parent">{{> label}}</template>
我想从父母那里设置例如宽度。为此,我为它提供了一个宽度参数:
B: <template name="parent">{{> label width="100%"}}</template>
在 B 中,标签模板丢失了父级的数据上下文,{{name}}现在未定义。在 A 中,它维护数据上下文并正常工作。为什么?
除了这个不受欢迎的解决方案,我还能做些什么来解决这个问题:
这有效,但我不想这样做:
<template name="parent">{{> label data=this width="100%"}}</template>
<template name="label">{{data.name}}</template>
答案 0 :(得分:4)
传递给模板的参数是数据上下文。如果未传递参数,则数据上下文默认为this
,即调用方的当前数据上下文。此外,label
模板不会使用传递给它的宽度,如果您不自己使用它。固定代码:
<template name="parent">{{> label name=name width="100%"}}</template>
<template name="label"><span width={{width}}>{{data.name}}</span></template>