通过嵌套的Handlebars部分修改和传递数据

时间:2017-01-18 11:01:16

标签: handlebars.js

如果在向下传递到子部分(在assemble.io的上下文中)时,如何修改部分数据? 用法是这样的:

<!-- index.hbs -->
{{> heroImage src="img.jpg"}}

<!-- heroImage.hbs -->
<div>{{> responsiveImage srcset=src+"480w"}}</div>

<!-- responsiveImage.hbs -->
<img srcset={{srcset}} />

我只能传递src数据,但不能使用和修改数据,例如src + "something"src"something"

1 个答案:

答案 0 :(得分:1)

如果您希望在小胡子中执行字符串连接,则需要使用helper方法并将其作为sub expression调用。

这样的辅助方法可以简单如下:

Handlebars.registerHelper('concat', function () {
    return Array.prototype.slice.call(arguments, 0, -1).join('');
});

你的heroImage.hbs部分会以下列方式使用这个助手:

<div>{{> responsiveImage srcset=(concat src " 480w")}}</div>

我还创建了一个示例fiddle