2015-07-30 9 views
6

Voglio ricaricare il mio modello in mio controller, e ho letto il documento da hereember model.reload() non è una funzione?

così ho definito l'azione: reload nel mio controller e via entrambi, come ad esempio:

reload:function(){ 
    this.get('model').reload(); 
    } 

quando ho innescato l'azione utilizza this.send('reload'), viene visualizzato l'errore this.get(...).reload is not a function, così ho frainteso il documento?

+0

prova 'this.controller.get ('modello') reload();' – Jeff

+0

mostrare il codice di percorso e di controllo completo e pubblicare il tuo brace e brace. versione -data, si prega di – artych

+0

DEBUG: Ember: 1.13.3 DEBUG: Ember dati: 1.13.5 DEBUG: jQuery: 1.11.3 DEBUG: Ember semplice Auth: 0.8.0 DEBUG: Ember semplice Auth Torii: 0.8. 0 – TommyLike

risposta

1

Prova questo:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
actions: { 
reload: function() { 
    this.controller.get('model').reload().then(function(model) { 
    // do something with the reloaded model 
    }); 
    } 
} 
}); 

E nel controller:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
actions: { 
    reload_model: function() { 
    this.send('reload'); 
    } 
    } 
}); 
+0

I provato, ma non funziona – TommyLike

+0

stai chiamando da qualche parte ' reload_model' azione? – Akis

7

Verificare che il modello non è una collezione. Puoi solo ricaricare un record. Se il modello è una raccolta si dovrebbe effettuare le seguenti operazioni:

reload:function(){ 
    this.get('model').forEach(function(record){ 
     record.reload(); 
    }); 

    }