我想知道是否有任何功能可以检查特定模板是否在页面上。 例如,我有以下内容:
当打开postPage时,我想在标题模板中显示链接。 也许smth类似于{{#if currentUser}}按钮{{/ if}}
答案 0 :(得分:1)
我不确定是否有办法查看当前正在呈现的所有模板,可能至少有一个私有API,但您可以这样做:
displayLinks = new ReactiveVar(false);
Template.postPage.onRendered(function() {
displayLinks.set(true);
});
Template.postPage.onDestroyed(function() {
displayLinks.set(false);
});
Template.header.helpers({
displayLinks: function() {
return displayLinks.get();
}
});
基本上,当显示postPage时,您将反应变量设置为true,而当它从DOM中删除时,则设置为false。 然后在标题中{{#if displayLinks}} ... {{/ if}}。
你需要
meteor add reactive-var
如果您还没有使用它们。
答案 1 :(得分:1)
我想加入一些烂摊子'响应。 (很好的回应BTW)
如果你想要知道哪些模板想要知道哪些模板而不为每个模板实现onRendered / onDestroyed,你可以使用以下代码来实现:
displayLinks = new ReactiveVar(false);
_.each(["header", "yield", "postPage", "etc"], function(t) {
Template[t].onRendered(function () {
displayLinks[t].set(true);
});
Template[t].onDestroyed(function () {
displayLinks[t].set(false);
});
});