Meteor开发平台入门 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

模板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函数。