在这篇文章中
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
答案 0 :(得分:4)
@Kalman是对的,您无法使用块表示法注册绑定帮助程序,因此在这种情况下,我会建议在注释中使用referenced的组件。
但是,对于那些可能已经发现这个问题且仍想在ember-cli中创建一个把手助手的人,你将要使用 makeBoundHelper 函数。
例如,我使用了当前日期帮助器:
// app/helpers/current-date.js
import Ember from 'ember';
export default Ember.Handlebars.makeBoundHelper(function() {
return moment().format('LL'); // Using moments format 'LL'
});
然后,在您的车把模板中,您可以使用:
{{current-date}}
产生 2015年3月5日
之类的日期