Javascript Ember.js 2.x:从另一个助手调用助手

Javascript Ember.js 2.x:从另一个助手调用助手,javascript,ember.js,Javascript,Ember.js,我正试图在我的ember.js应用程序中从另一个助手调用一个助手,但我不知道blazes是如何在2.x中实现的。作为参考,我将Ember 2.4与Ember CLI一起使用 在旧版本中,有几个答案是可行的;例如,下面的代码段定义了一个helper变量,该变量试图发挥一些魔力,然后调用Ember的内置组件helper 从“余烬”导入余烬; 导出函数magicComponent(参数){ // ... //在这里施展魔法 // ... return Ember.handlebar.helpers['

我正试图在我的
ember.js
应用程序中从另一个助手调用一个助手,但我不知道blazes是如何在2.x中实现的。作为参考,我将Ember 2.4与Ember CLI一起使用

在旧版本中,有几个答案是可行的;例如,下面的代码段定义了一个helper变量,该变量试图发挥一些魔力,然后调用Ember的内置
组件
helper

从“余烬”导入余烬;
导出函数magicComponent(参数){
// ...
//在这里施展魔法
// ...
return Ember.handlebar.helpers['component'].apply(this,args);//糟糕!
}
导出默认的Ember.Helper.Helper(magicComponent);
…但是那行写着“哎呀!”是类型错误,因为在Ember 2.x中
未定义的
。好的

有人知道如何在最新的Ember版本中以编程方式调用助手(或设置某种继承)吗


[编辑]为了清晰起见,删除了对“把手”的引用。

以下是我所做的,将基于会话的日期格式和时区添加到:


因此,基本上,包括您需要的助手,然后扩展它,并覆盖计算方法。

Ember>=1.10使用HTMLbars而不是Handlebars。关于编写助手的官方方式,请看这里,您是否有一个特定的用例需要它?@nem:我试图让问题本身不可知用例,因为它不会帮助未来的谷歌用户,他们想知道如何做这件事。我自己也在探索其他选项,以防万一,虽然这有点超出了范围。当然,但我问的原因是导入一个助手需要知道哪个助手,这样我们就知道从哪里导入它。您已经澄清,您想要导入一个内置的帮助程序,这正是我所要求的:)我在问题中明确表示我使用的是Ember的
组件
帮助程序——不清楚吗?要求真实的,而不是讽刺。导入和扩展似乎确实是正确的答案,尽管我有点挠头,因为这对定制助手非常有用。。。但我最初的用例是想知道如何调用核心的Ember助手(例如“组件”或“链接到”)。对于实际问题,我可能在我的场景中过于具体。
import Ember from 'ember';

import MomentFormat from 'ember-moment/helpers/moment-format';

export default MomentFormat.extend({
    session: Ember.inject.service(),

    formatChanged: observer("session.timeZone", "session.dateFormat", function() {
        this.recompute();
    }),


    compute([date], { locale }) {
        const timeZone = this.get("session.timeZone");
        const format = this.get("session.dateFormat");
        return this._super([date, format], {locale, timeZone});
    }
});