在这篇文章中
Iterating over basic “for” loop using Handlebars.js
列出了“重复”助手的示例。
助手
Handlebars.registerHelper('times', function(n, block) {
var accum = '';
for(var i = 0; i < n; ++i)
accum += block.fn(i);
return accum;
});
模板
{{#times 10}}
<span>{{this}}</span>
{{/times}}
我似乎不能用“CLI”方式写出来...有人可以启发我吗?
首先,它是位于 /helpers
中的它自己的帮助程序文件,并且它应该有一个破折号以便解析器识别它。 - 所以我不会明确注册它。
默认生成的助手看起来像这样 helpers/repeat-times.js
(模板应该是一样的...)
import Ember from 'ember';
export function repeatTimes(input) {
return input;
}
export default Ember.Handlebars.makeBoundHelper(repeatTimes);
因此,无需注册,无需设置名称...我只是找不到关于语法的清晰文档。 :/(我对它进行了 20 次左右的刺...)
或者我应该制作一个组件吗?如此处所建议:Block helper with ember-cli
最佳答案
@Kalman 是正确的,您不能使用 block 表示法注册绑定(bind)助手,因此在这种情况下我会推荐一个组件,即 referenced。在评论中。
但是,对于那些可能已经发现这个问题但仍想在 ember-cli 中创建 Handlebars 助手的人,您需要使用 makeBoundHelper 函数。
例如,这是我使用的current-date 助手:
// app/helpers/current-date.js
import Ember from 'ember';
export default Ember.Handlebars.makeBoundHelper(function() {
return moment().format('LL'); // Using moments format 'LL'
});
然后,在您的 Handlebars 模板中,您可以使用:
{{current-date}}
这会产生一个日期,例如 2015 年 3 月 5 日
关于ember.js - Ember CLI 中的 Handlebar 辅助语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28865379/