我在另一个内部有一个Meteor(v0.8)模板:
<template name="vehicles">
{{wheels}}
{{>hovercraft}}
</template>
<template name="hovercraft">
{{eels}}
</template>
我想在外部模板(wheels
)上定义模板函数eels
和vehicles
:
Template.vehicles.wheels = function() { console.log("wheels"); }
Template.vehicles.eels = function() { console.log("eels in the vehicles"); }
但是找不到eels
。当然,在内部模板(hovercraft
)上定义它可以起作用:
Template.hovercraft.eels = function() { console.log("eels in the hovercraft"); }
子模板如何继承模板函数的规则是什么? hovercraft
可以继承vehicles
函数吗?我经常发现自己需要这个,因为我将大模板重构为较小的模板。
感谢。
答案 0 :(得分:0)
使用包meteor-template-extension从模板继承帮助程序。
您还可以将参数传递给subtemplate,如:
<template name="tParent">
{{> tChild h1=helper1 h2=helper2}}
</template>
<template name="tChild">
{{h1}}
{{h2}}
</template>
Template.tParent.helpers({
helper1: function () {
return "helper1"
},
helper2: function () {
return "helper2"
}
});
事情是上面的方法传递助手的结果而不是引用它。 但是在某些情况下它仍然有用。