直到版本 0.8 为止,可以使用常规的 Handlebars 方式来定义迭代块助手,例如流行的each_with_key
,定义,例如,here https://gist.github.com/strathmeyer/1371586如下:
Handlebars.registerHelper("each_with_key", function(obj, fn) {
var context,
buffer = "",
key,
keyName = fn.hash.key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
context = obj[key];
if (keyName) {
context[keyName] = key;
}
buffer += fn(context);
}
}
return buffer;
});
这在 0.8 中不再有效,而且迁移指南 https://github.com/meteor/meteor/wiki/Using-Blaze#new-pattern-for-defining-custom-block-helpers也不空格键文档 https://github.com/meteor/meteor/blob/devel/packages/spacebars/README.md#custom-block-helpers举个例子。
鉴于块助手现在被视为包含项,并且包含项需要返回模板(或 null),而不是 HTML,我对此时是否以及如何实现这一点一无所知。
就在我快要放弃的时候,我想通了。事实上,现在 0.8 比以前更容易、更漂亮。以下似乎效果很好:
JS:
UI.registerHelper('addKeys', function (all) {
return _.map(all, function(i, k) {
return {key: k, value: i};
});
});
HTML:
{{#each addKeys obj}}
<div>
{{key}}: {{value}}
</div>
{{/each}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)