我正在努力应对那些本来应该简单的事情而且我无法得到它。有没有错误或仅仅是我?我使用两种方法创建了两个简单的例子:1)registerHelper和2)parentData: HTML是:
<body>
This is the body
{{> A}}
</body>
<template name="A">
This is "A"
{{> B}}
</template>
<template name="B">
This is "B"
{{> C}}
</template>
<template name="C">
This is "C"
{{foo}}
</template>
1)的Javascript是:
Template.registerHelper(foo, function () {
return 'Hello';
});
对于案例2)是:
Template.A.helpers({
foo: function () {
return 'Hello';
}
});
Template.C.helpers({
foo: function () {
return Template.parentData(2);
}
});
有什么问题?
答案 0 :(得分:0)
看起来您正在尝试调用父模板的辅助函数infoMessage
。这与访问父数据上下文不同。对于您的用例,我建议注册一个帮助函数,任何模板,包括A和B,都可以使用:
Template.registerHelper("infoMessage", function (dataContext) {
return dataContext.infoMessage;
});
编辑:根据您编辑过的问题,您错过了&#34; foo&#34;周围的引号。在(1)中:
Template.registerHelper("foo", function () {
return 'Hello';
});
然后在模板中使用它:
<template name="A">
<div class="message info-message">{{> B}}{{infoMessage .}}</div>
</template>
<template name="B">
<div class="wrap-popup">
<div class="popup-img"><img src="check12.svg"></div>
<div class="popup-item">
<h1> Sucess</h1>
<p>{{infoMessage ..}}Nada...</p>
</div>
</div>
</template>
有关详情,请参阅registering helpers上的官方Meteor文档。