流星template.rendered和this.data访问

我有一个模板

<template name='order'>
  {{vendor.name}}
</template>

用...呈现

  Template.order.vendor = function () {
    return {name: 'Chanel', address: 'Paris' };
  };

当我尝试访问此数据

Template.order.rendered = function () {
  console.log(this.data);
};

我得到'未定义'。

Template.order.rendered中获取例如vendor.namevendor.address的正确方法是什么?

谢谢。


在Template.rendered中,this.data对应于模板被“馈送”的数据,既可以作为参数,也可以使用{{#with}}构造。 vendor只是一个帮助函数,用于返回订单模板中可用的数据,但不绑定到“this.data”。 所以要解决你的问题,你有很多选择:

定义父模板并将供应商帮助者移至此父级,那么您可以选择以供应商的命令作为参数或使用{{#with block}}

<template name="parent">
    {{> order vendor}}
    {{#with vendor}}
        {{> order}}
    {{/with}}
</template>

<template name="order">
    {{name}}
</template>

Template.parent.vendor=function(){
    return{
        name:"Chanel",
        address:"Paris"
    };
};

Template.order.rendered=function(){
    // this.data == vendor object returned in parent helper
    console.log(this.data);
};

您还可以注册一个全局帮助器,从而不需要封装父模板:

Handlebars.registerHelper("vendor",function(){
    return{
        name:"Chanel",
        address:"Paris"
    };
});

Template.order.rendered = function () {
    console.log(Template.order.vendor());
}
链接地址: http://www.djcxy.com/p/72883.html

上一篇: Meteor template.rendered and this.data access

下一篇: Transition from iphone app store to enterprise development