我需要在子模板中检查在父模板中创建的反应式dict变量的值。
<template name="parent">
{{ > child }}
</template>
<template name="child">
{{#if something}}
checked
{{/if}}
</template>
这是我将反应性dict变量初始化为父模板的方法:
Template.parent.onCreated(function() {
this.blabla = new ReactiveDict();
});
因此,对于父模板,此帮助程序正在运行:
Template.parent.helpers({
anything: function(type) { return (Template.instance().blabla.get('foo') === 'bar') ? true : false; }
});
但它不会为孩子工作:
Template.child.helpers({
something: function() { return (Template.instance().blabla.get('foo') === 'bar') ? true : false; }
});
那么如何检查子帮助器中变量的值?
答案 0 :(得分:2)
这个问题的核心是如何找到模板的父实例。我建议您阅读所有答案here。
我将以Sacha提出的想法为基础,以此为例:
<强> HTML 强>
<template name="parent">
{{ > child parentHelper=parentHelper}}
</template>
<template name="child">
{{#if parentHelper}}
<h1>pass</h1>
{{else}}
<h1>fail</h1>
{{/if}}
</template>
<强> JS 强>
Template.parent.onCreated(function() {
this.dict = new ReactiveDict();
this.dict.set('foo', 'bar');
});
Template.parent.helpers({
parentHelper: function() {
return Template.instance().dict.equals('foo', 'bar');
}
});
如果确切的模式在您的代码中不起作用,您可以尝试上述链接问题中的其他模式。