为什么这不起作用?
Template.tests.helpers
test_value: -> "Test"
contacts: -> Contacts.find()
contact: -> Contacts.findOne()
示例1:
<template name="tests">
{{test_value}}
{{#with contact}}
<p>{{firstname}}</p>
<p>{{../test_value}}</p>
{{/with}}
</template>
联系人内部的../ test_value未呈现
示例2
<template name="tests">
{{>testContact}}
</template>
<template name="testContact">
{{test_value}}
{{#with contact}}
<p>{{firstname}}</p>
<p>{{../test_value}}</p>
{{/with}}
</template>
此示例中没有任何作用。我假设如果testContact模板中没有定义数据上下文,它将继承其父级的数据上下文。
示例3
<template name="tests">
{{>testContact}}
</template>
<template name="testContact">
{{test_value}}
{{#with ../contact}}
<p>{{firstname}}</p>
<p>{{../test_value}}</p>
{{/with}}
</template>
也不起作用。
这让我发疯了!
修改
示例4
<template name="tests">
{{#with contact}}
{{> testContact}}
{{/with}}
</template>
<template name="testContact">
<p>{{firstname}}</p>
<p>{{../test_value}}</p>
</p>
</template>
在这里,我可以看到数据上下文是testContact模板中的联系人。我希望{{../ test_value}}可以正常工作,因为test_value与我帮助程序中的联系人处于同一级别,但它没有。
示例5
<template name="tests">
{{#each contacts}}
{{> testContact}}
{{/each}}
</template>
<template name="testContact">
<p>{{firstname}}</p>
<p>{{../test_value}}</p>
</template>
答案 0 :(得分:1)
在testvalue之前不使用../尝试示例1。
助手与数据上下文不同,这就是为什么示例2和3不起作用的原因。
如果测试值辅助函数依赖于父上下文,那么您必须使用../将参数传递给testvalue帮助器。