2014-10-26 6 views
5

Ho un'applicazione brace con un controller header.js e un modello header.hbs.didInsertElement dal controller?

Ora ci sono alcuni javascript che ho bisogno di eseguire al documento $(document).ready()

ho visto su Ember Views si didInsertElement ma come faccio a fare questo dal controllore?

// controllers/header.js 
import Ember from 'ember'; 
export default Ember.Controller.extend({ 
}); 

// views/header.js 
import Ember from 'ember'; 
export default Ember.Controller.extend({ 
}); 

// templates/header.js 
test 

Ho letto più volte che non è consigliabile utilizzare le viste Ember?

risposta

7

il controller non è inserito (la vista è) quindi non c'è didInsertElement.

Se avete bisogno di qualcosa da eseguire una volta, si può scrivere qualcosa di simile:

import Ember from 'ember'; 
export default Ember.Controller.extend({ 
    someName: function() { // <--- this is just some random name 
     // do your stuff here 
    }.on('init') // <---- this is the important part 
}); 
+0

ah grande! grazie che potrebbe farlo Da tutte le mie prime letture su Ember sento che c'è una stigmatizzazione nell'usare le visualizzazioni o è mal fondata? – user391986

+1

Beh, sono lì per un motivo. Controller e visualizzazioni fanno cose molto diverse. Per alcune cose è possibile ottenere solo un modello (ma in tal caso, ember genera comunque una vista predefinita al volo). – amenthes

+0

Molto apprezzato, grazie per l'aiuto – user391986