在Meteor 0.8之前,它带来了火焰,我能够将对象传递给这样的自定义块助手内容:
return options.fn(object)
现在,使用blaze,阻止帮助程序需要返回类似这样的模板。
return Template.someTemplate
我如何实现旧的行为。我想要的是以下内容:
我使用了blockhelper
{{#blockhelper argument="something"}}
{{somePartOfTheObject}}
{{/blockhelper}}
然后在blockhelper定义中,我想根据参数做一些东西,它会返回一个对象。
UI.registerhelper "blockhelper", () ->
object = getStuffFrom(this.argument)
return Template.someTemplate(object)
根据blaze的需要,我创建了一个最小模板
<template name="someTemplate">
{{> UI.contentBlock}}
</template>
现在,blaze不允许将对象传递给此模板,因此可以在块内容中使用。
我怎样才能解决这个问题?
我知道流星的方式是在控制器中获取对象。但是由于我想将它用于原型框架,我希望能够直接从blockhelper创建所述对象,因此有人可以传递将被转换为对象的argmuents。
答案 0 :(得分:1)
解决方案结果非常简单。
如果我有帮手:
UI.registerhelper "blockhelper", () ->
object = getStuffFrom(this.argument)
return Template.someTemplate
帮助程序的变量和对象实际上在模板中可用。所以你只需这样做:
<template name="someTemplate">
{{> UI.contentBlock object}}
</template>