动态调用模板
可以使用一个特殊的标记符Template.dynamic来动态地调用子模板。下面 的示例使用Template.dynamic来调用hello模板,这等价于{{> hello}}:
{{> Template.dynamic template="hello"}}
≡ 为template参数设置helper函数
可以给template关键字参数传入一个helper函数,这样动态调用的感觉会更强烈了:
<body>
{{> Template.dynamic template=tpl}}
<body>
对应的helper函数将根据当前的状态返回模版名称:
Template.body.helpers({
tpl:function(){
return Session.get("state");
}
});
≡ 使用data参数设置数据上下文
可以在动态调用子模板时,使用data关键字参数传入一个对象作为子模板的数据上下文。 下面的示例为hello子模板设置一个数据上下文:
{{> Template.dynamic template="hello" data={name:"j0hntHEripper"}}}
当然,你可以使用helper函数来作为data参数的值。
执行以下命令复位test应用、删除源文件:
~/test$ meteor reset↵
~/test$ rm -rf \*↵
执行以下命令拷贝tpl-dynamic示例代码、运行并查看运行结果:
~/test$ cp ~/demos/tpl-dynamic/* .↵
~/test$ meteor↵
理解并修改tpl-dynamic示例代码,通过练习掌握动态模板的用法和用途。