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

时间:2017-11-21 12:00:56

标签: events ember.js

我想只听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事件中引发错误。

1 个答案:

答案 0 :(得分:1)

你需要使用didInsertElement hook而不是didRender这样的钩子:

didInsertElement(){
  // Do some stuff
}

此外,您可以考虑更改Ember.on使用情况because they may be deprecated soon的使用情况。请查看this twiddle didInsertElement挂钩的使用情况。