删除 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。
我只想听 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。