我有一个 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');
任何建议/指针/意见将不胜感激!