模板helper
模板helper是Blaze解析模板数据的另外一个方式。Blaze根据模板标签中的标识符, 查找对应名称的helper,并使用其返回值原地替换标识符。
≡ 使用父模板的helper为子模板建立数据上下文
对于下面的模板:
<template name="entry">
{{> hello getProfile}}
</template>
可以为entry模板建立了对应的getProfile helper函数,这个helper函数 将根据系统的登陆状态,返回不同的值:
Template.body.helpers({
getProfile:function(){
if(!loggedIn) return {name:"not logged in."}
else return {name:currentUser}
}
});
由于模板调用标签{{> hello getProfile}}需要的参数是一个JSON对象,因此我们的 getProfile helper应当返回一个JSON对象。
≡ 直接使用模板helper进行数据解析
helper函数的返回数据类型取决于它在模板中的应用场景,比如在hello模板中我们使用了一个 插值模板标签{{name}}:
<template name="hello">
Hello,{{name}}
</template>
那么对于模板标签中的name标识符,我们直接为hello模板定义name helper函数也可以。 这样就不需要在调用这个模板时传入数据上下文了:
Template.hello.helpers({
name:function(){
if(!loggedIn) return "not logged in."
else return currentUser
}
});
执行以下命令复位test应用、删除源文件:
~/test$ meteor reset↵
~/test$ rm -rf \*↵
执行以下命令拷贝tpl-helpers示例代码、运行并查看运行结果:
~/test$ cp ~/demos/tpl-hepers/* .↵
~/test$ meteor↵
理解并修改tpl-helpers示例代码,通过练习掌握在Meteor应用中如何为模板中 的标识符定义helper函数。