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 -