我创建了一个emberjs组件,它在js文件中有一个模板和一些代码。我想从DOM中删除该组件,并且还希望在某些条件下删除它的所有事件。我怎么能得到这个?或任何类似的方式来实现同样的目标?
//app/pods/custom-comp/component.js
import Ember from 'ember';
export default Ember.Component.extend({
didInsertElement() {
if(some_condition) { //if this condition is true then destory the component from DOM and remove all of its events.
//destroy the component
}
}
});
答案 0 :(得分:-1)
请参阅以下twiddle。我只是用
this.$().remove();
this.destroy();
它似乎正在发挥作用。然而;我建议用{{if}}
块进行包装而不是这样做;在组件设计方面,这对我来说听起来不错;但我把它作为一个答案,因为它似乎正在做你想要的。添加this.destroy
至少会删除观察者,但didDestroyElement
挂钩也会运行;但不是willDestroyElement
。有关destroy
的信息,请参见official documentation。