如何将对象从块助手传递回流星大火中的块?

时间:2014-05-25 11:37:16

标签: meteor meteor-blaze

在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。

1 个答案:

答案 0 :(得分:1)

解决方案结果非常简单。

如果我有帮手:

UI.registerhelper "blockhelper", () ->
   object = getStuffFrom(this.argument)
   return Template.someTemplate

帮助程序的变量和对象实际上在模板中可用。所以你只需这样做:

<template name="someTemplate">
    {{> UI.contentBlock object}}
</template>