registerHelper中有没有办法获取块的内容?
让我们假设我们有以下模板:
{{#myif test}}thats the content i want to have{{/myif}}
以下registerHelper代码:
Ember.Handlebars.registerBoundHelper('myif', function(test)
{
// do something
return <content of handlebars block>;
});
非常感谢!
答案 0 :(得分:5)
Handlebars将助手的嵌套块提供为options.fn
,其中options
是助手的最后一个参数。您可以使用上下文对象调用此块,该上下文对象将从该块中获取值。
要传递帮助程序本身的上下文,可以使用this
调用它。
在这种情况下,您可能还需要options.inverse
这是一个可选块,如果您的条件为假,将使用该块。
Ember.Handlebars.registerHelper('myif', function(condition, options) {
if (condition) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
随后在模板中使用,
{{#myif condition}}
true block here
{{else}}
else block here
{{/myif}}