从这里讨论,
Allow a passed in variable to {{renderPages}} helper
我正在尝试在现有的{{renderPage}};
中显示模板我的用例:我有一个非常简单的高级身体模板
<template name="body">
{{> header}}
{{> notifications}}
<div class="content" id="content">
<div id="main-content">
{{{renderPage}}}
</div>
</div>
{{> footer}}
</template>
正如您所看到的,我的主要内容包含{{renderPage}}
。当我设置路线时,这很有效:
'/home': 'home'
路径找到模板“home”并用该模板替换renderPage。我想现在扩展它,看看路由模板是否可以放在特定的div中。
例如,在我的home.html模板中:
<template name="home">
{{#if isAdmin}}
<h1>student</h1>
{{/if}}
<div id="inner_home">
{{renderPage innerHome}}
</div>
</template>
是否可以使用不同的路线/home/tools : 'home_tools
渲染它的模板不在最高主要内容div中但在我的子div inner_home
内?
编辑:
我正在评估一种方法,它只使用JQuery和meteor-router方法的回调函数来获取我正在寻找的模板,并将其直接添加到相关的div标签中。
类似的东西:
var foundTemplate = _.template($('#item-template').html())
$('#div_example').html(foundTemplate); //
如果有人有更好的方法,请告诉我。
答案 0 :(得分:0)
不确定
Meteor.Router.add({
'/home/tools': function() {
Session.set("homeTemplate", "tools");
return 'home';
},
'/home/admin': function() {
Session.set("homeTemplate", "admin");
return 'home';
}
});
Template.home.homeTemplateTools = function() {
return Session.equal("homeTemplate", "tools");
};
Template.home.homeTemplateAdmin = function() {
return Session.equal("homeTemplate", "admin");
};
<template name="home">
{{#if isAdmin}}
<h1>student</h1>
{{/if}}
<div id="inner_home">
{{#if homeTemplateTools}}
{{> homeTools}}
{{/if}}
{{#if homeTemplateAdmin}}
{{> homeAdmin}}
{{/if}}
</div>
</template>