0

我有一个 ember-cli 辅助函数:translate-i18n,我在我的 hbs 模板中很好地使用它作为造船厂 i18n 翻译库的辅助辅助函数。

我创建的助手将这个词作为参数,并且只提供了一些备用情况(例如,如果缺少翻译,它将触发空气制动错误)。

我的助手在 hbs 模板中使用时工作得非常好,但似乎不可能从 JS 文件中调用它,特别是另一个助手文件。简而言之,问题是这样的:

  • 如果我使用 Ember.Handlebars.helpers 无法访问使用助手创建的助手Ember.Handlebars.makeBoundHelper(translate); .... 所以我不能这样称呼它。我可以通过执行 this.container.lookup('helper:translate-i18n') 看到帮助程序存在,但我似乎没有能力以这种方式调用该函数。
  • 如果我使用 register(而不是 makeBound)创建助手,那么通过这样做:export default Ember.Handlebars.registerBoundHelper('translate', translate()); 然后我可以从任何地方访问我的助手,但突然容器没有定义,我不再可以在造船厂 i18n(t 助手),因为这一行会引发错误:var t = this.container.lookup('utils:t');

任何建议/指针/意见将不胜感激!

4

1 回答 1

0

如果您注册了车把助手,那么您可以从 JS 访问它们,例如

例如:如果您有一个名为 ' doSomething' 的助手,

Ember.Handlebars.registerBoundHelper('doSomething', function (args) {
 return something;
});

您可以像下面这样从 JS 调用助手

Ember.Handlebars.helpers.doSomething(args);
于 2015-06-09T16:57:55.443 回答