Meteor开发平台入门 互动版

动态调用模板

可以使用一个特殊的标记符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示例代码,通过练习掌握动态模板的用法和用途。