Ember CLI中的Handlebar helper语法

时间:2015-03-04 21:30:07

标签: ember.js handlebars.js ember-cli

在这篇文章中

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

1 个答案:

答案 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日

之类的日期