删除 EmberJS 中的特定事件侦听器

Remove a particular event listener in EmberJS

我只想听 EmberJS 组件中的第一个 didRender

initialDidRender: Ember.on('didRender', function() {
    // Do some stuff

    this.off('didRender');
}),

allOtherDidRender: Ember.on('didRender', function() {
    // Do some stuff
})

使用 this.off 非常适合我的用例,但如果我想在将来定义另一个 didRender 侦听器,它也会删除那个。

有没有办法只禁用我的示例的 initialDidRender

我也试过 this.set('initialDidRender', null); 但它会在以后的 didRender 事件中抛出错误。

您需要使用 didInsertElement 钩子而不是 didRender 钩子,如下所示:

didInsertElement(){
  // Do some stuff
}

此外,您可以考虑将 Ember.on 用法更改为 didInsertElement 钩子用法 because they may be deprecated soon. Take a look at this twiddle