【问题标题】:Handlebar helper syntax in Ember CLIEmber CLI 中的把手帮助器语法
【发布时间】:2015-03-04 21:30:06
【问题描述】:

在这篇文章中

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

【问题讨论】:

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


【解决方案1】:

@Kalman 是对的,您不能使用块表示法注册绑定助手,因此在这种情况下,我会推荐一个组件,即注释中的 referenced。

但是,对于那些可能已经发现此问题并仍想在 ember-cli 中创建车把助手的人,您将需要使用 ma​​keBoundHelper 函数。

例如,这是我使用的 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'
});

然后,在您的车把模板中,您可以使用:

{{current-date}}

产生类似 2015 年 3 月 5 日

的日期

【讨论】:

    猜你喜欢
    • 2014-11-03
    • 2014-06-30
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2014-07-17
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多