Desanexando e derrubando com willDestroyElement

Você pode remover os elementos do componente do DOM acionando o gancho willDestroyElement .

Sintaxe

import Ember from 'ember';

export default Ember.Component.extend ({
   ...
   willDestroyElement() {
      //code here    
   },
   ...
})

Exemplo

O exemplo fornecido a seguir descreve o uso do gancho willDestroyElement , que remove os elementos do componente do DOM. Crie um controlador com índice de nome e abra o arquivo de app / controlador / para adicionar o seguinte código -

import Ember from 'ember';

export default Ember.Controller.extend ({
   showComponent: true,
   laterCount: 0,
  
   buttonText: Ember.computed('showComponent', function() {
      let showing = Ember.get(this, 'showComponent');
      if (showing) {
         return 'Remove';
      } else {
         return 'Add';
      }
   }),
  
   actions: {
      toggleComponent() {
         this.toggleProperty('showComponent');
      },
    
      updateLaterCount() {
         Ember.set(this, 'laterCount', Ember.get(this, 'laterCount') + 1);
      }
   }
});

Crie um componente com o nome pós-ação , que será definido em app / components / .

Abra o arquivo post-action.js e adicione o seguinte código -

import Ember from 'ember';

export default Ember.Component.extend ({
   runLater: null,
  
   didInsertElement() {
      let timeout = Ember.run.later(this, function() {
         Ember.Logger.log('fired this after 1 seconds...');
         this.sendAction();
      }, 500);
    
      Ember.set(this, 'runLater', timeout);
   },
  
   willDestroyElement() {
      Ember.run.cancel(Ember.get(this, 'runLater'));
   }
});

Agora abra o arquivo de modelo de componente post-action.hbs com o seguinte código -

<h2>Tutorialspoint</h2>

Abra o arquivo index.hbs e adicione o seguinte código -

<h5>Count for clicks: {{laterCount}}</h5>
<button {{action 'toggleComponent'}}>{{buttonText}}</button>
{{#if showComponent}}
   {{post-action action="updateLaterCount"}}
{{/if}}
{{outlet}}

Resultado

Execute o servidor ember; você receberá a seguinte saída -

Inicialmente, o número de cliques será 1. Quando você clicar no botão Remover , o texto será removido -

Em seguida, clique no botão Adicionar , ele aumentará o número de cliques e exibirá o texto -