Emberjs仅从组件代码中销毁DOM中的组件

时间:2017-04-04 06:50:32

标签: javascript ember.js components

我创建了一个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
       }
    }
});

1 个答案:

答案 0 :(得分:-1)

请参阅以下twiddle。我只是用

this.$().remove();
this.destroy();

它似乎正在发挥作用。然而;我建议用{{if}}块进行包装而不是这样做;在组件设计方面,这对我来说听起来不错;但我把它作为一个答案,因为它似乎正在做你想要的。添加this.destroy至少会删除观察者,但didDestroyElement挂钩也会运行;但不是willDestroyElement。有关destroy的信息,请参见official documentation