Meteor template.rendered和this.data access
我有一个模板Meteor template.rendered和this.data access,meteor,Meteor,我有一个模板 <template name='order'> {{vendor.name}} </template> 当我尝试在中访问此.data时 Template.order.rendered = function () { console.log(this.data); }; 我得到“未定义” 在Template.order.rendered中获取例如vendor.name和vendor.address的正确方法是什么 谢谢。在Template.rend
<template name='order'>
{{vendor.name}}
</template>
当我尝试在中访问此.data时
Template.order.rendered = function () {
console.log(this.data);
};
我得到“未定义”
在Template.order.rendered
中获取例如vendor.name
和vendor.address
的正确方法是什么
谢谢。在Template.rendered中,this.data对应于模板“馈送”的数据,可以作为参数,也可以使用{{with}}构造。
Template.order.rendered = function () {
console.log(Template.order.vendor());
}
供应商只是一个助手函数,返回订单模板中可用的数据,但不绑定到“this.data”。
因此,要解决您的问题,您有许多选择:
定义父模板并将供应商帮助器移动到此父模板,然后您也可以调用order with vendor作为参数,或者使用{{#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);
};
感谢您对为什么使用
{{{with}}
或{{{{each}}
在模板中可以使用this.data进行了很好的解释,并且在使用帮助程序呈现模板字段时不可用。现在我更清楚了:)
<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"
};
});